Welcome!

Java IoT Authors: Pat Romanski, Liz McMillan, William Schmarzo, Zakia Bouachraoui, Yeshim Deniz

RSS Feed Item

Tennent's Correspondence Principle

Certain elements in the Java and JavaScript communities have been buzzing about Tennent's Correspondence Principle. I have heard it described as the ability to replace an expression with a function, so that

expression

means the same thing as

(function () { return expression; })()

There are some things that can't be enclosed that way, such as return statements and break statements, which the advocates of Tennent's Correspondence Principle (or TCP) claim is a symptom of a bad smell. Yow! Language design is already difficult enough without having to cope with olfactory hallucinations. So to better understand the problem, I bought a copy of Tennent's 1981 book, Principles of Programming Languages.


It turns out that the Correspondence Principle is descriptive, not prescriptive. He uses it to analyze the (by now forgotten) Pascal programming language, showing a correspondence between variable definitions and procedure parameters. Tennent does not identify the lack of correspondence of return statements as a problem.

He does seem to have some specific notions of good programming language design, however. For example,

Many existing languages only managed to combine countless "features" into a jumble that is neither easy to implement nor a pleasure to use.

It is amazing how little has changed since 1981. He also has warnings about side effecting features such as getters and setters:

Side effects are often confusing to program readers because they are unexpected: the familiar expressions of conventional arithmetic and algebra do not have side effects.

Read the original blog entry...

IoT & Smart Cities Stories
Pragmasoft is a team of highly experienced developers, testers and UX designers. They are passionate about bringing innovation and advancement right to your doorsteps. This is their profession and they simply love driving Agility. They are proud to utilize Agile and accelerate their customers level of innovation. Their mission is to translate the needs of customers to adaptive technology and software solutions by providing lean software development.
Atlantix Global Systems, a division of CXtec Inc., is one of the largest resellers of enterprise-class, secondary market equipment in the world. Atlantix Global provides a specialized, responsible method of streamlining the ITAD process that saves time, reduces expenses and ensures a secure solution, from start to finish. Atlantix Global has achieved certifications for ISO 14001:2015 and ISO 9001:2015 for asset recovery, OHSAS 18001:2007 for safety and R2:7/2013 for electronics recycling. Atlant...
DSR is a supplier of project management, consultancy services and IT solutions that increase effectiveness of a company's operations in the production sector. The company combines in-depth knowledge of international companies with expert knowledge utilising IT tools that support manufacturing and distribution processes. DSR ensures optimization and integration of internal processes which is necessary for companies to grow rapidly. The rapid growth is possible thanks, to specialized services an...
Scala Hosting is trusted by 50 000 customers from 120 countries and hosting 700 000+ websites. The company has local presence in the United States and Europe and runs an internal R&D department which focuses on changing the status quo in the web hosting industry. Imagine every website owner running their online business on a fully managed cloud VPS platform at an affordable price that's very close to the price of shared hosting. The efforts of the R&D department in the last 3 years made that pos...
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
ThousandEyes is a software-as-a-service (SaaS) product that uses synthetic monitoring probes to measure network performance. The product includes elements of network tomography for loss and latency, route analytics to visualize BGP advertisements, DNS monitoring, VoIP monitoring, website monitoring for HTTP and HTTPS and SNMP device polling.
Trend Micro Incorporated, a global leader in cybersecurity solutions, helps to make the world safe for exchanging digital information. Our innovative solutions for consumers, businesses, and governments provide layered security for data centers, cloud workloads, networks, and endpoints. All our products work together to seamlessly share threat intelligence and provide a connected threat defense with centralized visibility and investigation, enabling better, faster protection. With more than 6,00...
PrinterLogic helps IT professionals eliminate all print servers and deliver a highly available serverless print infrastructure. With PrinterLogic's centrally managed direct IP printing platform, customers empower their end users with mobile printing, secure release printing, and many advanced features that legacy print management applications can't provide. The company has been included multiple times on the Inc. 500 and Deloitte Fast 500 lists of fastest growing companies in North America.
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
Kubernetes as a Container Platform is becoming a de facto for every enterprise. In my interactions with enterprises adopting container platform, I come across common questions: - How does application security work on this platform? What all do I need to secure? - How do I implement security in pipelines? - What about vulnerabilities discovered at a later point in time? - What are newer technologies like Istio Service Mesh bring to table?In this session, I will be addressing these commonly asked ...