AI

New AI-Assisted Coding Tool Called 'Amazing' (theverge.com) 174

An anonymous reader quotes The Verge's AI and Robotics reporter: By scanning huge datasets of text, machine learning software can produce convincing samples of everything from short stories to song lyrics. Now, those same techniques are being applied to the world of coding with a new program called Deep TabNine, a "coding autocompleter." Programmers can install it as an add-on in their editor of choice, and when they start writing, it'll suggest how to continue each line, offering small chunks at a time. Think of it as Gmail's Smart Compose feature but for code.

Jacob Jackson, the computer science undergrad at the University of Waterloo who created Deep TabNine, says this sort of software isn't new, but machine learning has hugely improved what it can offer... Earlier this month, he released an updated version that uses a deep learning text-generation algorithm called GPT-2, which was designed by the research lab OpenAI, to improve its abilities. The update has seriously impressed coders, who have called it "amazing," "insane," and "absolutely mind-blowing" on Twitter...

Deep TabNine is trained on 2 million files from coding repository GitHub. It finds patterns in this data and uses them to suggest what's likely to appear next in any given line of code, whether that's a variable name or a function... Most importantly, thanks to the analytical abilities of deep learning, the suggestions Deep TabNine makes are of a high overall quality. And because the software doesn't look at users' own code to make suggestions, it can start helping with projects right from the word go, rather than waiting to get some cues from the code the user writes.

It's not free software. Currently a personal license costs $49 (with a business-use license costing $99), the Verge reports -- but the tool supports the following 22 languages...

Python, JavaScript, Java, C++, C, PHP, Go, C#, Ruby, Objective-C, Rust, Swift, TypeScript, Haskell, OCaml, Scala, Kotlin, Perl, SQL, HTML, CSS, and Bash.
Programming

Is Object-Oriented Programming a Trillion Dollar Disaster? (medium.com) 782

Senior full-stack engineer Ilya Suzdalnitski recently published a lively 6,000-word essay calling object-oriented programming "a trillion dollar disaster." Precious time and brainpower are being spent thinking about "abstractions" and "design patterns" instead of solving real-world problems... Object-Oriented Programming (OOP) has been created with one goal in mind -- to manage the complexity of procedural codebases. In other words, it was supposed to improve code organization. There's no objective and open evidence that OOP is better than plain procedural programming... Instead of reducing complexity, it encourages promiscuous sharing of mutable state and introduces additional complexity with its numerous design patterns. OOP makes common development practices, like refactoring and testing, needlessly hard...

Using OOP is seemingly innocent in the short-term, especially on greenfield projects. But what are the long-term consequences of using OOP? OOP is a time bomb, set to explode sometime in the future when the codebase gets big enough. Projects get delayed, deadlines get missed, developers get burned-out, adding in new features becomes next to impossible. The organization labels the codebase as the "legacy codebase", and the development team plans a rewrite.... OOP provides developers too many tools and choices, without imposing the right kinds of limitations. Even though OOP promises to address modularity and improve reusability, it fails to deliver on its promises...

I'm not criticizing Alan Kay's OOP -- he is a genius. I wish OOP was implemented the way he designed it. I'm criticizing the modern Java/C# approach to OOP... I think that it is plain wrong that OOP is considered the de-facto standard for code organization by many people, including those in very senior technical positions. It is also wrong that many mainstream languages don't offer any other alternatives to code organization other than OOP.

The essay ultimately blames Java for the popularity of OOP, citing Alan Kay's comment that Java "is the most distressing thing to happen to computing since MS-DOS." It also quotes Linus Torvalds's observation that "limiting your project to C means that people don't screw things up with any idiotic 'object model'."

And it ultimately suggests Functional Programming as a superior alternative, making the following assertions about OOP:
  • "OOP code encourages the use of shared mutable state, which has been proven to be unsafe time and time again... [E]ncapsulation, in fact, is glorified global state."
  • "OOP typically requires a lot of boilerplate code (low signal-to-noise ratio)."
  • "Some might disagree, but OOP code is notoriously difficult to unit test... [R]efactoring OOP code is really hard without dedicated tools like Resharper."
  • "It is impossible to write good and maintainable Object-Oriented code."

Java

Are Millennials Spending Too Much Money On Coffee? (theatlantic.com) 532

An anonymous reader quotes the Atlantic: Suze Orman wants young people to stop "peeing" away millions of dollars on coffee. Last month, the personal-finance celebrity ignited a controversy on social media when a video she starred in for CNBC targeted a familiar villain: kids these days and their silly $5 lattes. Because brewing coffee at home is less expensive, Orman argued, purchasing it elsewhere is tantamount to flushing money away, which makes it a worthy symbol of Millennials' squandered resources...

In the face of coffee shaming, young people usually point to things like student loans and housing prices as the true source of the generation's instability, not their $100-a-month cold-brew habits... Orman and her compatriots now receive widespread pushback when denigrating coffee aficionados, a change that reflects the shifting intergenerational tensions that are frequently a feature of the post-Great Recession personal-finance genre. The industry posits that many of the sweeping generational trends affecting Americans' personal stability -- student-loan debt, housing insecurity, the precarity of the gig economy -- are actually the fault of modernity's encouragement of undisciplined individual largesse. In reality, those phenomena are largely the province of Baby Boomers, whose policies set future generations on a much tougher road than their own. With every passing year, it becomes harder to sell the idea that the problems are simply with each American as a person, instead of with the system they live in. "There's a reason for this blame-the-victim talk" in personal-finance advice, the journalist Helaine Olen wrote recently. "It lets society off the hook. Instead of getting angry at the economics of our second gilded age, many end up furious with themselves."

That misdirection is useful for people in power, including self-help gurus who want to sell books... [W]hen it comes to money, says Laura Vanderkam, the author of All the Money in the World: What the Happiest People Know About Getting and Spending, there are usually only a couple of things that actually make a difference in how stable people are. It's the big stuff: how much you make, how much you pay for housing, whether or not you pay for a car.

Microsoft

The Rise and Fall of Visual Basic (medium.com) 217

Technology writer Matthew MacDonald began writing QuickBASIC code back in 1988 on the DOS operating system, sharing it on a 3.5-inch floppy disk. "I still remember writing code in white text on its cheery blue background..."

He tells his readers on Medium that "I have a confession to make. Before I became a respectable developer working with modern curly-bracket languages like C# and Java (and that hot mess of a platform we call JavaScript), I was a dedicated fan of the wildly popular misfit Visual Basic..."

At the same time that Microsoft released Windows 3.0 -- the first version that was truly successful -- they also launched Visual Basic 1.0. Here was something entirely new. You could create buttons for your programs by drawing them on the surface of a window, like it was some kind of art canvas. To make a button do something, all you had to do was double-click it in the design environment and write some code. And you didn't use cryptic C++ code, with piles of classes, complex memory management, and obscure calls into the Windows API. Instead, you wrote friendly-looking VB code, like a civilized person.

All the graphical pizzazz was impressive, but the real secret to VB's success was its practicality. There was simply no other tool that a developer could use to sketch out a complete user interface and get coding as quickly as VB... By the release of VB 6 -- the last version of classic Visual Basic -- it was estimated that there were ten times more coders writing in VB than in the unforgiving C++ language. And they weren't just mocking up toy applications. Visual Basic wormed its way into company offices and even onto the web through ASP (Active Server Pages), another monstrously popular technology. Now you could create web pages that talked to VB components, called databases, and wrote HTML on the fly...

Today, Visual Basic is in a strange position. It has roughly 0% of the mindshare among professional developers -- it doesn't even chart in professional developer surveys or show up in GitHub repositories. However, it's still out there in the wild, holding Office macros together, powering old Access databases and ancient ASP web pages, and attracting .NET newcomers. The TIOBE index, which attempts to gauge language popularity by looking at search results, still ranks VB in the top five most talked-about languages. But it seems that the momentum has shifted for the last time. In 2017, Microsoft announced that it would begin adding new language features to C# that might never appear in Visual Basic. The change doesn't return VB to ugly duckling status, but it does take away some of its .NET status....

Visual Basic has been threatened before. But this time feels different. It seems like the sun is finally setting on one of the world's most popular programming languages. Even if it's true, Visual Basic won't disappear for decades. Instead, it will become another legacy product, an overlooked tool without a passion or a future.

He remembers that the last versions of Visual Basic even supported object-oriented programming with interfaces, polymorphism, and class libraries, but argues that to create .NET, Microsoft "had to throw away almost all of classic VB."

For example, "Classic VB programmers had to change the way they counted array elements. No longer could they start at 1, like ordinary people. Now they had to start at 0, like official programmers."
Security

Oracle Issues Emergency Update To Patch Actively Exploited WebLogic Flaw (arstechnica.com) 26

An anonymous reader quotes a report from Ars Technica: Oracle on Tuesday published an out-of-band update patching a critical code-execution vulnerability in its WebLogic server after researchers warned that the flaw was being actively exploited in the wild. The vulnerability, tracked as CVE-2019-2729, allows an attacker to run malicious code on the WebLogic server without any need for authentication. That capability earned the vulnerability a Common Vulnerability Scoring System score of 9.8 out of 10. The vulnerability is a deserialization attack targeting two Web applications that WebLogic appears to expose to the Internet by default -- wls9_async_response and wls-wsat.war. The flaw in Oracle's WebLogic Java application servers came to light as a zero-day four days ago when it was reported by security firm KnownSec404.
Java

7,000 Developers Report Their Top Languages: Java, JavaScript, and Python (jetbrains.com) 194

"JetBrains released its State of Developer Ecosystem 2019 report, which found while Java is still the most popular primary language and JavaScript is the most used overall, Python is gaining speed," reports SD Times: The report surveyed about 7,000 developers worldwide, and revealed Python is the most studied programming language, the most loved language, and the third top primary programming language developers are using... The top use cases developers are using Python for include data analysis, web development, machine learning and writing automation scripts, according to the JetBrains report. More developers are also beginning to move over to Python 3, with 9 out of 10 developers using the current version.

The JetBrains report also found while Go is still a young language, it is the most promising programming language. "Go started out with a share of 8% in 2017 and now it has reached 18%. In addition, the biggest number of developers (13%) chose Go as a language they would like to adopt or migrate to," the report stated...

Seventy-three percent of JavaScript developers use TypeScript, which is up from 17 percent last year. Seventy-one percent of Kotlin developers use Kotlin for work. Java 8 is still the most popular programming language, but developers are beginning to migrate to Java 10 and 11.

JetBrains (which designed Kotlin in 2011) also said that 60% of their survey's respondents identified themselves as professional web back-end developers (while 46% said they did web front-end, and 23% developed mobile applications). 41% said they hadn't contributed to open source projects "but I would like to," while 21% said they contributed "several times a year."

"16% of developers don't have any tests in their projects. Among fully-employed senior developers though, that statistic is just 8%. Like last year, about 30% of developers still don't have unit tests in their projects." Other interesting statistics:
  • 52% say they code in their dreams.
  • 57% expect AI to replace developers "partially" in the future.
  • "83% prefer the Dark theme for their editor or IDE. This represents a growth of 6 percentage points since last year for each environment.
  • 47% take public transit to work.

And 97% of respondents using Rust "said they have been using Rust for less than a year. With only 14% using it for work, it's much more popular as a language for personal/side projects." And more than 90% of the Rust developers who responded worked with codebases with less than 300 files.


Programming

Python Passes C++ on TIOBE Index, Predicted To Pass C and Java (infoworld.com) 266

Python reached another new all-time high on the TIOBE index, now representing 8.5% of the results for the search query +"<language> programming" on the top 25 search engines. Python overtook C++ this month for the #3 spot, now placing behind only Java (#1) and C (#2).

That's prompted TIOBE to make a bold prediction: If Python can keep this pace, it will probably replace C and Java in 3 to 4 years time, thus becoming the most popular programming language of the world.

The main reason for this is that software engineering is booming. It attracts lots of newcomers to the field. Java's way of programming is too verbose for beginners. In order to fully understand and run a simple program such as "hello world" in Java you need to have knowledge of classes, static methods and packages. In C this is a bit easier, but then you will be hit in the face with explicit memory management. In Python this is just a one-liner. Enough said.

InfoWorld reports: Also on the rise in the June Tiobe index, Apple's Swift language is ranked 11th, with a rating of 1.419 percent. Swift was ranked 15th at this time last year and 18th last month, while its predecessor Objective-C language ranked 12th this month with a rating of 1.391. Tiobe expects Objective-C to drop out of the top 20 within two years.
InfoWorld also notes that Python is already #1 in the Pypl index, which analyes how often language tutorials are searched for on Google. On that list, Python is followed by Java, JavaScript, C#, PHP, and then C/C++.

Python was also TIOBE's fastest-rising language in 2018 -- though in 2017 that honor went to C, and in 2015 to Java...
Java

'Java Web Start Is Dead. Long Live Java Web Start!' (openwebstart.com) 62

An anonymous reader reminded us about the open source reimplementation of Java Web Start, a framework originally developed by Sun Microsystems that allowed users to more easily run Java applications in an applet-like sandbox using a web browser.

From OpenWebStart.com: Java Web Start (JWS) was deprecated in Java 9, and starting with Java 11, Oracle removed JWS from their JDK distributions. This means that clients that have the latest version of Java installed can no longer use JWS-based applications. And since public support of Java 8 has ended in Q2/2019, companies no longer get any updates and security fixes for Java Web Start.

This is why we decided to create OpenWebStart, an open source reimplementation of the Java Web Start technology. Our replacement will provide the most commonly used features of Java Web Start and the JNLP standard, so that your customers can continue using applications based on Java Web Start and JNLP without any change.

Red Hat is apparently involved in its parent project, IcedTea-Web, which it distributes as part of their Windows OpenJDK distribution.
Security

Ask Slashdot: What To Do When Your Certificate Authority Suddenly Revokes Your Cert? 180

Long-time Slashdot reader rastos1 works for a mid-size software company that for many decades has been developing CAD-CAM software for the textile industry. But last weekend their code-signing certificate was revoked -- and they're looking for advice. On Monday morning we woke up to phones ringing from confused customers unable to launch our software. This has hit mostly Java applications launched from a web page because JRE checks the signature by default using OCSP. But traditional executables and shared libraries also would report invalid signature upon checking.

We reached out, but for half a day we could not get any feedback. Later we got information that some malware was signed with our certificate. Two days and many e-mails and phone calls later, we understand that this is what happened: someone submitted one of our executables to virustotal.com -- a site that runs ~70 antivirus programs on submitted files and reports back whether they flag the uploaded file. Five of their antivirus packages flagged our executable. We tracked down the version and we positively know it was a false positive. There is random guy that wrote a tool that creates a monthly report of files flagged at Virustotal. Sectigo found the report, and, according to their statement, revoked all certificates used to sign executables -- causing major disruption to us and downtime for our customers... There was no attempt to contact us and clarify the situation.

How do you prepare and deal with such scenario? Did you know how little it takes to get your certificate revoked?

They'd bought their certs from the same seller for more than a decade -- and their story has already drawn some interesting comments from long-time Slashdot readers. "False positives are way too common in the anti-virus world today..." argues Z00L00K, adding "you have to cut down all unnecessary players in the chain to a minimum, so the dependency on an external CA is worth reconsidering."

sjames -- Slashdot reader #1,099 -- agrees. "If you must depend on another entity, make sure they're small enough that they would actually care if they lost you as a customer." And Martin S. simply recommends talking to a lawyer, adding "This is a legal problem, not a technology problem."

But what's your advice? Leave your best thoughts in the comments. What should you do when your certificate authority suddenly revokes your cert?
AI

Microsoft Wants To Apply AI 'To the Entire Application Developer Lifecycle' (venturebeat.com) 69

An anonymous reader writes: At its Build 2018 developer conference a year ago, Microsoft previewed Visual Studio IntelliCode, which uses AI to offer intelligent suggestions that improve code quality and productivity. In April, Microsoft launched Visual Studio 2019 for Windows and Mac. At that point, IntelliCode was still an optional extension that Microsoft was openly offering as a preview. But at Build 2019 earlier this month, Microsoft shared that IntelliCode's capabilities are now generally available for C# and XAML in Visual Studio 2019 and for Java, JavaScript, TypeScript, and Python in Visual Studio Code. Microsoft also now includes IntelliCode by default in Visual Studio 2019. IntelliCode has come a long way since May 2018, but Microsoft is only getting started. When it comes to using AI to aid developers, the company wants to help at every step of the way, according to Amanda Silver, a director of Microsoft's developer division.

"If you look at the entire application developer lifecycle, from code review to testing to continuous integration, and so on, there are opportunities at every single stage for machine learning to help," Silver told VentureBeat. "IntelliCode is, very broadly, the notion that we want to take artificial intelligence -- and really machine learning techniques -- and allow that to make developers and development teams more productive. "IntelliCode is really only at the early stages -- authoring and helping to focus code reviews. But over time, we really think that we can apply it to the entire application developer lifecycle."

Programming

Are Trendy Developers Ignoring Tradeoffs and Over-Engineering Workplaces? (github.io) 211

An anonymous reader shares an article titled "Does IT Run on Java 8?"

"After more than ten years in tech, in a range of different environments, from Fortune 500 companies, to startups, I've finally come to realize that most businesss and developers simply don't revolve around whatever's trending on Hacker News," argues one Python/R/Spark data scientist: Most developers -- and companies -- are part of what [programmer] Scott Hanselman dubbed a while ago as the 99%... "They don't read a lot of blogs, they never write blogs, they don't go to user groups, they don't tweet or facebook, and you don't often see them at large conferences. Lots of technologies don't iterate at this speed, nor should they.

"Embedded developers are still doing their thing in C and C++. Both are deeply mature and well understood languages that don't require a lot of churn or panic on the social networks. Where are the dark matter developers? Probably getting work done. Maybe using ASP.NET 1.1 at a local municipality or small office. Maybe working at a bottling plant in Mexico in VB6. Perhaps they are writing PHP calendar applications at a large chip manufacturer."

While some companies are using Spark and Druid and Airflow, some are still using Coldfusion... Or telnet... Or Microsoft TFS... There are reasons updates are not made. In some cases, it's a matter of national security (like at NASA). In others, people get used to what they know. In some cases, the old tech is better... In some cases, it's both a matter of security, AND IT is not a priority. This is the reason many government agencies return data in PDF formats, or in XML... For all of this variety of reasons and more, the majority of companies that are at the pinnacle of succes in America are quietly running Windows Server 2012 behind the scenes.

And, not only are they running Java on Windows 2012, they're also not doing machine learning, or AI, or any of the sexy buzzwords you hear about. Most business rules are still just that: hardcoded case statements decided by the business, passed down to analysts, and done in Excel sheets, half because of bureacracy and intraction, and sometimes, because you just don't need machine learning. Finally, the third piece of this is the "dark matter" effect. Most developers are simply not talking about the mundane work they're doing. Who wants to share their C# code moving fractions of a cent transactions between banking systems when everyone is doing Tensorflow.js?

In a footnote to his essay, Hanselman had added that his examples weren't hypothetical. "These people and companies all exist, I've met them and spoken to them at length." (And the article includes several tweets from real-world developers, including one which claims Tesla's infotainment firmware and backend services were all run in a single-location datacenter "on the worst VMware deployment known to man.")

But the data scientist ultimately asks if our online filter bubbles are exposing us to "tech-forward biases" that are "overenthusiastic about the promises of new technology without talking about tradeoffs," leading us into over-engineered platforms "that our companies don't need, and that most other developers that pick up our work can't relate to, or can even work with...

"For better or worse, the world runs on Excel, Java 8, and Sharepoint, and I think it's important for us as technology professionals to remember and be empathetic of that."
Android

Google Pushes Kotlin Over Java for Android Development (thenewstack.io) 117

Google "officially declared Kotlin the go-to language for Android development last week at its Google I/O developer conference," reports Mike Melanson's "This Week in Programming" column, "and the company is backing that up with a couple of initiatives around making it easier (and free) to learn the language now used by a majority of Android developers." Google teamed up with Udacity to offer Developing Android Apps with Kotlin , a free, self-paced online course on how to build Android apps with Jetpack and Kotlin, meant for people who have programming experience and are comfortable with Kotlin basics. Google also announced "Kotlin/Everywhere, a series of community-driven events focussing on the potential of Kotlin on all platforms," which it is putting on in conjunction with JetBrains.

Of course, this leaves the question that has been asked many times before -- why Kotlin? -- and IT consultant Kristen Carter offers a take on how Android app development became Kotlin-first. Carter offers some business angles, such as the 2010 lawsuit against Google by Oracle, which predates Kotlin by just a year, and she speculates may have been the impetus behind the language's development as "Google has always wanted to get away from the [Java] ecosystem." At the same time, Carter offers some language-specific reasoning too, such as the comparably succinct nature of Kotlin, the absence of Java's NullPointerExceptions, and the ease with which Java developers could transition to Kotlin. Carter ends her piece by posing the possibility that Oracle "knows the significance of Java in android app development" and could "ship Java with a few upgrades in its next version to take on Kotlin."

Microsoft

Microsoft is Bringing Visual Studio To the Browser, Unveils .NET 5 (venturebeat.com) 30

Krystalo writes: At its developer conference Build today, Microsoft previewed new Visual Studio features for remote work, the .NET roadmap, and launched ML.NET 1.0. In April, Microsoft launched Visual Studio 2019 for Windows and Mac. Two notable features were Visual Studio Live Share, a real-time collaboration tool included with Visual Studio 2019, and Visual Studio IntelliCode, an extension offering AI-assisted code completion. At Build 2019, Microsoft shared that IntelliCode's capabilities are now generally available for C# and XAML in Visual Studio 2019 and for Java, JavaScript, TypeScript, and Python in Visual Studio Code. And IntelliCode is now included by default in Visual Studio 2019, starting in version 16.1 Preview 2. The company also previewed an algorithm that can locally track your edits -- repeated edit detection -- and suggest other places where you need that same change. But that's just the tip of the iceberg. Microsoft is experimenting with features that let developers work from anywhere, on any device. The company today announced a private preview for three such new capabilities: Remote-powered developer tools, cloud-hosted developer environments, and a browser-based web companion tool. If the future of work is remote, Microsoft wants to be ready.

[...] Microsoft also announced that it is skipping .NET 4 to avoid confusion with the .NET Framework, which has been on version 4 for years. Going forward, developers will be able to use .NET to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS, WebAssembly, and more. .NET Core 3 will be succeeded by .NET 5, featuring new .NET APIs, runtime capabilities, and language features. Calling it .NET 5 makes it the highest version Microsoft has ever shipped and indicates that the company hopes it is the future for the .NET platform. .NET Core 3 closes much of the remaining capability gap with .NET Framework 4.8, enabling Windows Forms, WPF, and Entity Framework 6. .NET 5 will build on this work, Microsoft says, combining .NET Core, .NET Framework, Xamarin, and Mono (the original cross-platform implementation of .NET) into a single platform. .NET 5 will provide both Just-in-Time (JIT) and Ahead-of-Time (AOT) compilation models. JIT has better performance for desktop/server workloads and development environments. AOT has a faster startup and a small footprint, which is required for mobile and IoT devices. .NET 5 will offer one unified toolchain supported by new SDK project types and a flexible deployment model (side-by-side and self-contained EXEs).

Programming

'Why I Prefer Go Over Python or Java' (yourbasic.org) 230

Stefan Nilsson, a computer science professor at the KTH Royal Institute of Technology, recently explained "why I prefer Go to Java or Python," arguing that Go "makes it much easier for me to write good code." Go is a minimalist language, and that's (mostly) a blessing. The formal Go language specification is only 50 pages, has plenty of examples, and is fairly easy to read. A skilled programmer could probably learn Go from the specification alone. The core language consists of a few simple, orthogonal features that can be combined in a relatively small number of ways. This makes it easier to learn the language, and to read and write programs. When you add new features to a language, the complexity doesn't just add up, it often multiplies: language features can interact in many ways. This is a significant problem -- language complexity affects all developers (not just the ones writing the spec and implementing the compiler).

Here are some core Go features:

- The built-in frameworks for testing and profiling are small and easy to learn, but still fully functional. There are plenty of third-party add-ons, but chances are you won't need them.

- It's possible to debug and profile an optimized binary running in production through an HTTP server.

- Go has automatically generated documentation with testable examples. Once again, the interface is minimal, and there is very little to learn.

- Go is strongly and statically typed with no implicit conversions, but the syntactic overhead is still surprisingly small. This is achieved by simple type inference in assignments together with untyped numeric constants. This gives Go stronger type safety than Java (which has implicit conversions), but the code reads more like Python (which has untyped variables).

- Programs are constructed from packages that offer clear code separation and allow efficient management of dependencies. The package mechanism is perhaps the single most well-designed feature of the language, and certainly one of the most overlooked.

- Structurally typed interfaces provide runtime polymorphism through dynamic dispatch.

- Concurrency is an integral part of Go, supported by goroutines, channels and the select statement.

The professor points out that the Java® Language Specification is 750 pages, and blames much of its complexity on feature creep (for example, inner classes, generics, and enum). And he also applauds the strict compatibility guarantees of Go 1 for the core language and standard packages, as well as its open source, BSD-style license, and Go's code transparency.

"There is one standard code format, automatically generated by the fmt tool," he writes, arguing that "Your project is doomed if you can't read and understand your code."
Oracle

Oracle Exec Mocks Google Arguments About Java's APIs (thehill.com) 145

"Whether it is consumers' data or competitors' code, Google's view seems to be the same: What's mine is mine, and what's yours is mine," argues Oracle executive vice president Kenneth Glueck.

Google had urged America's Supreme Court to rule in their ongoing legal case about access to Java's APIs, a case which Google says hinges on "whether developers should be able to create new applications using standard ways of accessing common functions. Those functions are the building blocks of computer programming, letting developers easily assemble the range of applications and tools we all use every day. Making it harder to connect with those functions would lock developers into existing platforms, thus reducing competition and, ultimately, hurting consumers. Access to software interfaces like these is the key to interoperability, the foundation of great software development."

That editorial -- written by Google's senior vice president for global affairs, Kent Walker, notes that 175 startups, developers, academics and other tech companies (including Microsoft) are also asking the Supreme Court to hear this case. Google warns of a risk to innovation posed if companies like Oracle become "gatekeepers to interoperability," calling it "a defining battle of the digital era."

Oracle's executive responds that "There are many 'defining battles' of the digital era -- 5G, Artificial Intelligence, autonomous devices -- but Oracle v. Google is surely not among them." Only in Google's world does weaker intellectual property protection lead to more innovation. It is settled in law and in economics that the opposite is true. And at a time when the U.S. is circling the globe to enhance the protection of U.S. intellectual property -- including strong copyright protection -- Google takes the opposite view...

In a stunning what's-up-is-down and down-is-up statement, Walker attempts to wrap Google in the cloak of interoperability. Java defined the era of interoperability with its "write once, run everywhere" architecture. It was Google that copied Java, built Android around it, and altered it so it was only interoperable with itself (i.e., write once, run only on Google). Android killed Java interoperability, and now Google argues that killing interoperability is good for interoperability?

Those facts are not in dispute. The only issue in dispute is Google's assertion that its actions were all "fair." On this point, the federal circuit court clearly analyzed and methodically decided against Google's fair-use defense. This makes sense because, under no interpretation of fair use, may you copy a competitor's software code and turn around and compete against that competitor in the marketplace. Hard stop... There is no matter of law in question, nor is there a conflict among circuit courts. Google was caught killing interoperability and is now trying to concoct a new "we are too important" legal defense.

Reuters reports that this week the Supreme Court asked the White House "to offer its views on whether it should hear Google's bid to end Oracle's copyright infringement lawsuit."
Earth

Indonesia Plans To Move Its Capital Out Of Jakarta, A City That's Sinking (npr.org) 95

Indonesia has announced plans to build a new capital city as its current capital, Jakarta, struggles with pollution, traffic gridlock -- and the fact that the city is sinking. From a report: After a Cabinet meeting on Monday, planning minister Bambang Brodjonegoro said President Joko Widodo has decided to move the capital out of Indonesia's main island, Java. It's not clear exactly when this will happen, or where the new capital would be located. The idea has been out there for decades, though previous leaders have been unable to accomplish the ambitious plan. Earlier this month, Widodo secured another term in office, according to independent polling organizations. His challenger also declared victory, and official results have not yet been announced.

"The idea to move the capital city appeared long ago. ... But it has never been decided or discussed in a planned and mature manner," Widodo said before the meeting, according to The Associated Press. Jakarta faces massive challenges. As the BBC has reported, it's the fastest-sinking city in the world, with almost half of its area below sea level.

Java

Caffeine Gives Perovskite Solar Cells An Energy Boost, Study Says (ieee.org) 77

UCLA professor Yang Yang's lab chock-full of coffee drinkers spent several years searching for a stability-enhancing additive to turn famously unstable perovskite PV cells into a useful product. Then, on a lark, Yang's graduate student Rui Wang suggested they try adding caffeine to the mix. To the team's surprise, caffeine produced longer lasting and more powerful solar cells. IEEE Spectrum reports: The work, completed with collaborators at Hong Kong-based PV firm Solargiga Energy Holdings and two Chinese universities, appears today in energy research journal Joule. Caffeine's calming effect starts during the creation of perovskite crystals. "Without caffeine, the crystallization process will just take 2 seconds, but with caffeine it will take 1 to 2 minutes," says Yang. The more deliberate growth process yields a perovskite material with larger grains of defect-free crystal. They are more stable mechanically and better at moving the charges created from incoming photons.

Caffeine also stabilizes perovskite PV cells during operation because each caffeine molecule can bind to two lead atoms at the boundaries of the crystal grains. This dual molecular lock ties the grains together and, Yang believes, hinders the movement of ions that threaten to reshape the crystal into a weaker pattern. The lab's best caffeine-treated cell captures incoming light with an efficiency of 19.8 percent, up from 17 percent for untreated cells, and retains 86 percent of its output after operating for 1,300 grueling hours at 85C. That's remarkable endurance compared with that of the lab's untreated cells, whose output plummeted by 40 percent after just 175 hours. Still, Yang says they need materials that hold it together through at least one to two years of accelerated testing to provide confidence that they can pump out power for several decades on a rooftop.

Oracle

Red Hat Takes Over Maintenance of OpenJDK 8 and OpenJDK 11 From Oracle (infoworld.com) 55

"Red Hat is taking over maintenance responsibilities for OpenJDK 8 and OpenJDK 11 from Oracle," reports InfoWorld: Red Hat will now oversee bug fixes and security patches for the two older releases, which serve as the basis for two long-term support releases of Java. Red Hat's updates will feed into releases of Java from Oracle, Red Hat, and other providers... Previously, Red Hat led the OpenJDK 6 and OpenJDK 7 projects. Red Hat is not taking over OpenJDK 9 or OpenJDK 10, which were short-term releases with a six-month support window.
Python

Historic 'Summit' with the Creators of Python, Java, TypeScript, and Perl (packtpub.com) 84

"At the first annual charity event conducted by Puget Sound Programming Python on April 2, four legendary language creators came together to discuss the past and future of language design," reports PacktPub.

- Guido van Rossum, the creator of Python
- James Gosling, the founder, and lead designer behind the Java programming language
- Anders Hejlsberg, the original author of Turbo Pascal who has also worked on the development of C# and TypeScript
- Larry Wall, the creator of Perl

You can watch the video here -- the speaker introductions start about 50 minutes into the video-- or read PacktPub's summary of the event: Guido van Rossum said designing a programming language is very similar to the way JK Rowling writes her books, the Harry Potter series... He says JK Rowling is a genius in the way that some details that she mentioned in her first Harry Potter book ended up playing an important plot point in part six and seven... When designing a language we start with committing to certain details like the keywords we want to use, the style of coding we want to follow, etc. But, whatever we decide on we are stuck with them and in the future, we need to find new ways to use those details, just like Rowling...

When James Gosling was asked how Java came into existence and what were the design principles he abided by, he simply said, "it didn't come out of like a personal passion project or something. It was actually from trying to build a prototype.... It started out as kind of doing better C and then it got out of control that the rest of the project really ended up just providing the context." In the end, the only thing out of that project survived was Java...

Larry Wall wanted to create a language that was more like a natural language. Explaining through an example, he said, "Instead of putting people in a university campus and deciding where they go we're just gonna see where people want to walk and then put shortcuts in all those places." A basic principle behind creating Perl was to provide APIs to everything. It was aimed to be both a good text processing language linguistically but also a glue language....

Similar to the views of Guido van Rossum, Anders Hejlsberg adds that any decision that you make when designing a language you have to live with it. When designing a language you need to be very careful about reasoning over what "not" to introduce in the language.

There was also some discussion of types -- Gosling believes they help improve performance, while Hejlsberg said types are also useful when building coding tools. "It turns out that you can actually be more productive by adding types if you do it in a non-intrusive manner and if you work hard on doing good type inference and so forth." In fact, Hejlsberg told the audience that the TypeScript project was inspired by massive "write-only" JavaScript code bases, while a semantic understanding (including a type system) makes refactoring easier.

Guido van Rossum acknowledged that TypeScript "is actually incredibly useful and so we're adding a very similar idea to Python. We are adding it in a slightly different way because we have a different context.... I've learned a painful lesson, that for small programs dynamic typing is great. For large programs, you have to have a more disciplined approach. And it helps if the language actually gives you that discipline, rather than telling you, 'Well, you can do whatever you want.'"

In the video Larry Wall says the Perl 6 team had also noticed the limitations of loose typing, and added a robust type system to Perl 6 to "help with programming in the large."

This was the first annual benefit for CSforALL, a group promoting high-quality computer science classes at every grade level.
Programming

The Most Loved and Most Disliked Programming Languages Revealed in Stack Overflow Survey (stackoverflow.com) 268

angel'o'sphere shares a report: The annual Stack Overflow survey is one of the most comprehensive snapshots of how programmers work, with this year's poll being taken by almost 90,000 developers across the globe. This year's survey details which languages developers enjoy using, which are associated with the best paid jobs, which are most commonly used, as well as developers' preferred frameworks, databases, and integrated development environments.

Python's versatility continues to fuel its rise through Stack Overflow's rankings for the "most popular" languages, which lists the languages most widely used by developers. This year's survey finds Python to be the fastest-growing major programming language, with Python edging out Android and enterprise workhorse Java to become the fourth most commonly used language. [...] More importantly for developers, this popularity overlaps with demand for the language, with Julia Silge, data scientist at Stack Overflow, saying that jobs data gathered by Stack Overflow also shows Python to be one of the most in-demand languages sought by employers.

[...] Rust may not have as many users as Python or JavaScript but it has earned a lot of affection from those who use it. For the fourth year running, the language tops Stack Overflow's list of "most-loved" languages, which means the proportion of Rust developers who want to continue working with it is larger than that of any other language.[...] Go stands out as a language that is well paid, while also being sought after and where developers report high levels of job satisfaction.
Full report here.

Slashdot Top Deals