Education

Microsoft: Make 11-Year-Olds 'Future Ready' With Minecraft Python Hour of Code 51

theodp writes: The upcoming "Hack the Classroom: STEM Edition," Microsoft explains, "is a [3-day] free virtual event series designed for K-12 educators, parents, and guardians. The sessions will feature resources and tutorials to help educators support students in learning future-ready skills. These lessons can be easily incorporated into classroom curriculum while preparing for this year's Hour of Code event -- a global effort to teach and demystify coding, during Computer Science Education Week, December 7-13."

Microsoft has boasted that the Hour of Code enabled it to reach tens of millions of schoolchildren each year with its drag-and-drop Minecraft-themed tutorials. New for middle and high schoolers this year is the Minecraft Python Hour of Code, which presumably taps into the just-released Python Content for Minecraft: Education Edition (sample Python 101 Lesson). The Hour of Code is run by Microsoft-funded Code.org, whose Board of Directors include Microsoft President Brad Smith.
Java

Python Overtakes Java To Become The Second-Most Popular Programming Language (techrepublic.com) 103

For the first time in the history of TIOBE's index, Java has slipped out of the top two, leaving Python to occupy the spot behind reigning champion, C. TechRepublic reports: October's TIOBE index had C at No. 1 and Java at No. 2, and historically those two languages have simply traded spaces while the rest of the competition battled it out for the privilege to fall in behind the two perennial leaders. With Python finally overtaking Java in popularity, the future could be one in which everything comes up Python. "In the past, most programming activities were performed by software engineers. But programming skills are needed everywhere nowadays and there is a lack of good software developers," TIOBE CEO Paul Jansen said. "As a consequence, we need something simple that can be handled by non-software engineers, something easy to learn with fast edit cycles and smooth deployment. Python meets all these needs."

Jansen said that he believes this is the case despite claims from others that Python's popularity is due to booms in data mining, AI, numerical computing, and other initiatives that commonly use Python's extensive data processing capabilities. As TechRepublic's R. Dallon Adams wrote in his piece on the October index, Python has been giving Java a run for its money for some time. October saw Python at No. 3 with the largest year-over-year growth percentage in the top 50 languages. Java, still at second place in October, had the largest negative year-over-year growth rate in the top 50 during the same period.
R, Perl, and Go are also all boasting positive growth. "R is in 9th place, the same it occupied last month," reports TechRepublic. "R has experienced explosive growth in 2020, which has led TIOBE to consider it a contender for programming language of the year."
Programming

After 3-Year Hiatus, 'Pyston' Runtime Returns to Make Python Code Faster (infoworld.com) 27

"Development of Pyston, a variant of the Python runtime that uses just-in-time compilation to speed up the execution of Python programs, is back on again," reports InfoWorld — after a hiatus that began in 2017: Picking up where Dropbox left off, a new development team has released Pyston 2.0. Pyston provides what is ultimately intended to be a drop-in replacement for the standard Python runtime, CPython. It's compatible with Python 3.8, so programs that runs with that version of Python should run as-is on Pyston...

One of the goals of the project was to remain as close as possible to the original implementation of CPython, since many third-party projects make assumptions about CPython behavior. Thus Pyston 2.0 began with the existing CPython codebase and added features from Pyston 1.0 that worked well, such as caching attributes and JITting. Pyston's JIT no longer uses LLVM, but DynASM to emit assembly directly...

[U]nlike the original Pyston incarnation, the new version is closed-source for the time being, as its new stewards determine their business model.

Python

Does Python Need to Change? (zdnet.com) 233

The Python programming language "is a big hit for machine learning," read a headline this week at ZDNet, adding "But now it needs to change."

Python is the top language according to IEEE Spectrum's electrical engineering audience, yet you can't run Python in a browser and you can't easily run it on a smartphone. Plus no one builds games in Python these days. To build browser applications, developers tend to go for JavaScript, Microsoft's type-safety take on it, TypeScript, Google-made Go, or even old but trusty PHP. On mobile, why would application developers use Python when there's Java, Java-compatible Kotlin, Apple's Swift, or Google's Dart? Python doesn't even support compilation to the WebAssembly runtime, a web application standard supported by Mozilla, Microsoft, Google, Apple, Intel, Fastly, RedHat and others.

These are just some of the limitations raised by Armin Ronacher, a developer with a long history in Python who 10 years ago created the popular Flask Python microframework to solve problems he had when writing web applications in Python. Austria-based Ronacher is the director of engineering at US startup Sentry — an open-source project and tech company used by engineering and product teams at GitHub, Atlassian, Reddit and others to monitor user app crashes due to glitches on the frontend, backend or in the mobile app itself... Despite Python's success as a language, Ronacher reckons it's at risk of losing its appeal as a general-purpose programming language and being relegated to a specific domain, such as Wolfram's Mathematica, which has also found a niche in data science and machine learning...

Peter Wang, co-founder and CEO of Anaconda, maker of the popular Anaconda Python distribution for data science, cringes at Python's limitations for building desktop and mobile applications. "It's an embarrassing admission, but it's incredibly awkward to use Python to build and distribute any applications that have actual graphical user interfaces," he tells ZDNet. "On desktops, Python is never the first-class language of the operating system, and it must resort to third-party frameworks like Qt or wxPython." Packaging and redistribution of Python desktop applications are also really difficult, he says.

Programming

Kite Expands Its AI Code Completions From 2 To 13 Programming Languages (venturebeat.com) 19

An anonymous reader writes: Kite, which suggests code snippets for developers in real time, today added support for 11 more programming languages, bringing its total to 13. In addition to Python and JavaScript, Kite's AI-powered code completions now support TypeScript, Java, HTML, CSS, Go, C, C#, C++, Objective C, Kotlin, and Scala. (The team chose the 11 languages by triangulating the StackOverflow developer survey, Redmonk's language rankings, and its own developer submissions.) AI that helps developers is growing in popularity, with startups like DeepCode offering AI-powered code reviews and tech giants like Microsoft trying to apply AI to the entire application developer cycle. Kite stands out from the pack with 350,000 monthly developers using its AI developer tool. Kite debuted privately in April 2016 before publicly launching a cloud-powered developer sidekick in March 2017. The company raised $17 million in January 2019 and ditched the cloud to run its free offering locally. In May, Kite added JavaScript support, launched a Pro plan with advanced line-of-code completions for Python, and updated its engine to use deep learning, a type of machine learning.
The Internet

2.1 Million of the Oldest Internet Posts Are Now Online For Anyone To Read (vice.com) 106

An anonymous reader quotes a report from Motherboard: Decades before Twitter threads, Reddit forums, or Facebook groups, there was Usenet: an early-internet, pre-Web discussion system where one could start and join conversations much like today's message boards. Launched in 1980, Usenet is the creation of two Duke University students who wanted to communicate between decentralized, local servers -- and it's still active today. On Usenet, people talk about everything, from nanotech science to soap operas, wine, and UFOs. Jozef Jarosciak, a systems architect based in Ontario, had his first encounter with Usenet in 2000, when he found a full-time job in Canada thanks to a job posting there.

This week, Jarosciak uploaded some of the oldest Usenet posts available to the internet. Around 2.1 million posts from between February 1981 and June 1991 from Henry Spencer's UTZOO NetNews Archive are archived at the Usenet Archive for anyone to browse. This latest archive-dump is part of an even larger project by Jarosciak. He launched the Usenet Archive site last month, as a way to host groups in a way that'd be independent of Google Groups, which also holds archives of newsgroups like Usenet. It's currently archiving 317 million posts in 10,000 unique Usenet newsgroups, according to the site -- and Jarosciak estimates it'll eventually hold close to 1 billion posts.

Python

Is Python Becoming More Popular Than Java? (techradar.com) 107

Python has reached "a new all-time high" on TIOBE's index of programming language popularity. TechRadar reports: Java's days as the world's second most popular programming language could be numbered according to Tiobe's latest programming language rankings which show Python is becoming increasingly popular among developers. The firm's Index for October 2020 shows that Java has been overtaken by C as the world's most popular programming language when compared to the same period last year. Python remains in third place but it's quickly closing the gap between it and Java. According to Tiobe CEO Paul Jensen, C and Java have held the top two spots consistently for the past two decades. However, the 25-year-old programming language Java is approaching its "all time low" in popularity as it has fallen by 4.32 percentage points when compared to where it stood in October of last year. Tiobe ranks programming languages in its popularity index based on the number of hits each language gets across 25 search engines.
RedMonk's rankings already show Python as more popular than Java — the first time since 2012 that Java isn't one of their top two most popular languages. And TIOBE's CEO says "Let's see what will happen the next few months."

Here's their October rankings for the top 10 most popular programming languages.
  • C
  • Java
  • Python
  • C++
  • C#
  • Visual Basic
  • JavaScript
  • PHP
  • R
  • SQL

And coming in at #11 is Perl.


Python

New Python 3.9 'Brings Significant Changes' To Language Features (infoworld.com) 74

This week's release of Python 3.9 "brings forward significant changes to both the features of the language and to how the language is developed," writes InfoWorld — starting with a new yearly release schedule and performance-boosting parser improvements: - Python makes it easy to manipulate common data types, and Python 3.9 extends this ease with new features for strings and dictionaries. For strings, there are new methods to remove prefixes and suffixes, operations that have long required a lot of manual work to pull off. [The methods are named .removeprefix() and .removesuffix() and their return value is the modified string]

- For dictionaries, there are now union operators, one to merge two dictionaries into a new dictionary and one to update the contents of one dictionary with another dictionary.

- Decorators let you wrap Python functions to alter their behaviors programmatically. Previously, decorators could only consist of the @ symbol, a name (e.g. func) or a dotted name (func.method) and optionally a single call (func.method(arg1, arg2)). With Python 3.9, decorators can now consist of any valid expression...provided it yields something that can function as a decorator...

- Two new features for type hinting and type annotations made their way into Python 3.9. In one, type hints for the contents of collections — e.g., lists and dictionaries — are now available in Python natively. This means you can for instance describe a list as list[int] — a list of integers — without needing the typing library to do it. The second addition to Python's typing mechanisms is flexible function and variable annotations. This allows the use of the Annotated type to describe a type using metadata that can be examined ahead of time (with linting tools) or at runtime...

- Python extension modules, written in C, may now use a new loading mechanism that makes them behave more like regular Python modules when imported.

NASA

Microsoft and NASA Create a Space-Themed Site Teaching Python Programming (techrepublic.com) 24

"To teach the next generation of computer scientists the basics of Python programming, Microsoft recently announced a partnership with NASA to create a series of lessons based on space exploration efforts," reports TechRepublic: Overall, the project includes three different NASA-inspired lessons... The Introduction to Python for Space Exploration lesson will provide students with "an introduction to the types of space exploration problems that Python and data science can influence." Made up of eight units in total, this module also details the upcoming Artemis lunar exploration mission.

In another learning path, students will learn to design an AI model capable of classifying different types of space rocks depicted in random photos, according to Microsoft. However, the company recommends a "basic understanding of Python for Data Science" as a prerequisite for this particular lesson. The last of the three learning paths serves as an introduction to machine learning and demonstrates ways these technologies can help assist with space exploration operations.

Students are presented real-world NASA challenges, particularly rocket launch delays, and learn how the agency can leverage machine learning to resolve the issues... Microsoft also announced partnerships with Wonder Woman 1984 and Smithsonian Learning Labs to curate five additional programming lessons for students.

Java

The World's Largest Concentrations of Java Programmers are in Asia and Germany (jetbrains.com) 34

"To celebrate Java's 25th anniversary this year and the latest release of Java 15, JetBrains has compiled data from multiple sources to look at what the current state of the language," reports SD Times: The largest concentration of Java developers is in Asia, where 2.5 million developers use it as their primary language. JetBrains believes this may be due to the fact that it is common to hire offshore developers in countries like China and India to build Android apps. "We might have expected the USA to have a high percentage of Java users, but it also makes a lot of sense that they don't. There is a big technology stack to choose from and often a lot of the tech companies are at the forefront of that stack, so it could be that developers there don't need the power or stability of Java and are using languages that allow them to build and test quickly," JetBrains wrote in a post.
The post on JetBrains notes that the six countries with the highest percentage of developers using Java as their primary language are: China, South Korea, India, Germany, Spain, and Brazil: The reasons Java is most likely so popular in the first 6 countries include the free use of Java, governmental support, and open-source... Germany is also very high which could be attributed to Java being the most popular language in Germany for software engineers as it is used to build highly scalable applications for a multitude of industries. Most enterprise services rely on Java to power the applications that enable the day-to-day running of businesses, such as payroll, inventory management, reporting, and so on. Germany also has a big financial sector that uses Java heavily for their homegrown tech, such as trading bots, retail banking systems, and other applications that the finance industry requires in order to remain competitive...

According to the State of the Developer Ecosystem Survey 2020, more than a third of professional developers use Java as a primary language and Java remains the second primary language among professional developers after JavaScript. Expert analysis: It is not surprising to see JavaScript and Java taking the leading positions as they are kind of paired together; developers who work with Java often write their frontend and any quick scripts in JavaScript. Python is probably third place due to the spread of machine learning. In general, we expect the web to be a big part of the developer ecosystem and so JavaScript, HTML and CSS, and PHP will always have solid standing. SQL is also always going to be around as there isn't much that doesn't require databases in some capacity. C++ is also kind of a solid language in that it is used for a lot of embedded applications, so it won't be disappearing off the charts any time soon. C# though seems to be losing ground, and I guess if Java is high then C# will be low, as they are both very similar in terms of capabilities.

As to why I think Java is so high in the sphere of professional development — it's similar to what was mentioned about Germany. Most enterprise business services rely on Java to make them tick along. It's not just the IT sector either — almost every company, be it in distribution, manufacturing, or banking, has IT services as part of their infrastructure, and these services, such as payroll or inventory management, are generally built with Java in the backend. So Java is used a lot by professional developers who work for these companies.

Transportation

Python Developer Builds a Raspberry Pi That Alerts Drone Pilots (suasnews.com) 26

"A Raspberry Pi, a USB SDR dongle, an LCD a buzzer and a little bit of coding in Python and C has created a very useful alarm for drone and RC model aircraft operators," explains long-time Slashdot reader NewtonsLaw . The device allows users to set an "alarm" perimeter around their operating area and automatically alert them whenever a manned aircraft with ADSB fitted intrudes into that area. While there are apps like FlightRadar24 that allow you to monitor ADSB-equipped air traffic, this is the first stand-alone hand-held unit that isn't reliant on cellular or Wifi data and which not just monitors aircraft movments but also sounds an alarm according to user-defined parameters.
sUAS News reports: "As an avid proponent of safety within the drone and RC communities, I decided to put my background in electronics engineering and computer software to good use by developing a device that has the potential to ensure the skies remain safe," said Kiwi drone and RC model enthusiast Bruce Simpson.

"The alarm I've developed is not a silver bullet but it is an extremely valuable tool for improving safety... I will be publishing some DIY videos showing people how they can build their own from readily available parts. This will ensure it remains cheap enough to be used by everyone..."

Drone users now call on the manned aviation community to ensure that they play their part by equipping their aircraft with the ADSB technology that has become such an important part of safety in the 21 st century.

Java

Oracle's Plan to Keep Java Developers from Leaving for Rust and Kotlin (zdnet.com) 90

ZDNet reports: Oracle has released version 15 of Java, the language created 25 years ago by James Gosling at Sun Microsystems, which Oracle snapped up in 2009 for about $7.4bn to gain what it said was the "most important software Oracle has ever acquired". Java 15, or Oracle Java Development Kit (JDK) 15, brings the Edwards-Curve digital signature algorithm, hidden classes, and former preview features that have been finalized, including text blocks, and the Z Garbage Collector, while the sealed-classes feature arrives and pattern matching and records emerge as a second preview...

In July, Java fell out of RedMonk's top two positions for the first time since 2012 and now resides behind JavaScript and Python in terms of popularity. Tiobe in September ranked Java in second position, behind C and ahead of Python.... But Java is still hugely popular and widely used in the enterprise, according to Oracle, which notes it is used by over 69% of full-time developers worldwide... It counts Arm, Amazon, IBM, Intel, NTT Data, Red Hat, SAP and Tencent among its list of notable contributors to JDK 15. Oracle also gave a special mention to Microsoft and cloud system monitoring service DataDog for fixes...

As part of Java's 25th anniversary, Oracle commissioned analyst firm Omdia to assess its six-month release strategy for Java and whether it would be enough to keep millions of Java developers away from memory-safe alternatives such as Kotlin, the language Google has endorsed for Android development, and Rust, a system programming language that was created at Mozilla. "In Omdia's opinion, the work Oracle began a few years ago in moving to a six-month update cycle and introducing a new level of modularity, puts the vendor in good stead with its constituency of approximately 12 million developers," Oracle said in its report on Omdia's analysis.

"However, Oracle and the Java programming language need an ongoing series of innovative, must-have, and 'delightful' features that make the language even more user friendly and cloud capable. These will keep existing Java developers happy while steering potential Java developers away from newer languages like Rust and Kotlin."

IBM

IBM Will Feed Four Children For a Day For Every Student Who Masters the Mainframe (ibm.com) 151

This week brings a special event honoring the IBM Z line of mainframes, writes long-time Slashdot reader theodp: As part of this week's IBM Z Day event, looking-for-young-blood IBM is teaming up with tech-backed K-12 CS nonprofits Code.org and CSforALL and calling on students 14-and-up to Master The Mainframe during the 24-hour code-a-thon to open doors to new opportunities with Fortune 500 companies.

"The rewards for participants are substantial," explains Big Blue. "For every student who finishes Level 1, IBM will donate to the UN World Food Programme #ShareTheMeal... In celebration of IBM Z day, we will double the donation for all students that complete Master the Mainframe Level 1 between Sept 15 — 30 2020. Just 1 hour of your time will feed 4 children for a day."
"Through three interactive Levels, you will access a mainframe and get skilled up on the foundations of Mainframe," according to IBM's announcement at MasterTheMainframe.com, "including JCL, Ansible, Python, Unix, COBOL, REXX, all through VS Code. Round it all out with a grand challenge where you craft your own fully-equipped Mainframe creation."

"One mainframe is equivalent to 1,500 x86 servers," the site notes. It also points out that mainframes handle 30 billion transactions every day, "more than the number of Google searches every day" — including 87% of all credit card transactions, nearly $8 trillion payments a year.
Cloud

Xanadu Launches Quantum Cloud Platform, Plans To Double Qubits Every 6 Months (venturebeat.com) 20

Earlier today, quantum computing startup Xanadu launched its quantum cloud platform, where developers can access the company's gate-based photonic quantum processors with 8-qubit or 12-qubit chips, with 24-qubit chips coming "in the next month of so." "The startup expects to 'roughly double' the number of qubits available in its cloud every six months," reports VentureBeat. "The hope is Xanadu Quantum Cloud will let businesses, developers, and researchers build novel solutions to problems in finance, quantum chemistry, machine learning, and graph analytics." From the report: Quantum computing leverages qubits (unlike bits that can only be in a state of 0 or 1, qubits can also be in a superposition of the two) to perform computations that would be much more difficult for a classical computer. Based in Toronto, Canada, Xanadu has been developing quantum computers based on photonics since its founding in September 2016. The choice of technology means Xanadu's quantum processors operate at room temperature (most other examples of quantum computing tech have to be cooled to very low temperatures) and can be integrated into existing fiber optic-based telecommunication infrastructure.

Xanadu is best known for the development of PennyLane, an open source software library for quantum machine learning, quantum computing, and quantum chemistry. The company also develops Strawberry Fields, its cross-platform Python library for simulating and executing programs on quantum photonic hardware. Both open source tools are available on GitHub, and they have a growing community fostering tutorials and educational materials for anyone interested in developing and experimenting with quantum applications.

Programming

Elon Musk and John Carmack Discuss Neuralink, Programming Languages on Twitter (twitter.com) 72

Friday night CNET reported: With a device surgically implanted into the skull of a pig named Gertrude, Elon Musk demonstrated his startup Neuralink's technology to build a digital link between brains and computers. A wireless link from the Neuralink computing device showed the pig's brain activity as it snuffled around a pen on stage Friday night.
Some reactions from Twitter:

- "The potential of #Neuralink is mind-boggling, but fuckkkk why would they use Bluetooth???"

- "they're using C/C++ too lmao"

But then videogame programming legend John Carmack responded: "Quality, reliable software can be delivered in any language, but language choice has an impact. For me, C would be a middle-of-the-road choice; better than a dynamic language like javascript or python, but not as good as a more modern strongly static typed languages.

However, the existence of far more analysis tools for C is not an insignificant advantage. If you really care about robustness, you are going to architect everything more like old Fortran, with no dynamic allocations at all, and the code is going to look very simple and straightforward.

So an interesting question: What are the aspects of C++ that are real wins for that style over C? Range checked arrays would be good. What else?

When asked "What's a better modern choice?" Carmack replied "Rust would be the obvious things, and I don't have any reason to doubt it would be good, but I haven't implemented even a medium sized application in it."

But then somewhere in the discussion, Elon Musk made a joke about C's lack of "class" data structures. Elon Musk responded: I like C, because it avoids class warfare
But then Musk also gave interesting responses to two more questions on Twitter: Which is your fav programming language? Python?

Elon Musk: Actually C, although the syntax could be improved esthetically

Could Neuralink simulate an alternate reality that could be entered at will, like Ready Player One? Implications for VR seem to be massive. Essentially, a simulation within a simulation if we're already in one ...

Elon Musk: Later versions of a larger device would have that potential

Programming

Julia Users Most Likely To Defect To Python for Data Science (zdnet.com) 32

The open-source project behind Julia, a programming language for data scientists, has revealed which languages users would shift to if they decided no longer to use Julia. From a report: Julia, a zippy programming language that has roots at MIT, has published the results of its 2020 annual user survey. The study aims to uncover the preferences of those who are building programs in the language. [...] Last year, 73% of Julia users said they would use Python if they weren't using Julia, but this year 76% nominated Python as the other language. MATLAB, another Julia rival in statistical analysis, saw its share of Julia users as a top alternative language drop from 35% to 31% over the past year, but C++ saw its share on this metric rise from 28% to 31%. Meanwhile, R, a popular statistical programming language with a dedicated crowd, also declined from 27% to 25%.
AI

AI Can Make Music, Screenplays, and Poetry. What About a Movie? (medium.com) 35

Want a movie where a protagonist your age, race, sexuality, gender, and religion becomes an Olympic swimmer? You got it. Want a movie where someone demographically identical to your boss gets squeezed to death and devoured by a Burmese python? Your wish is its command. From a report: Want to leave out the specifics and let fate decide what never-before-imagined movie will be entertaining you this evening? Black Box has you covered. After you make your choices -- and of course pay a nominal fee for the serious computational heavy lifting necessarily involved -- your order is received at Black Box HQ, and an original movie will be on its way shortly.

Black Box converts your specifications into data -- or if you didn't ask for anything specific, a blob of randomly generated numerical noise will do -- and the creation process can begin. That first collection of ones and zeros will become a prompt, and will be fed into a type of A.I. called a transformer, which will spit out the text screenplay for your movie through a process a little like the autocomplete function on your smartphone. That screenplay will then be fed into a variation on today's vector quantized variational autoencoders -- neural nets that generate music, basically -- producing chopped up little bits of sound that, when strung together, form an audio version of the spoken dialogue and sound effects in your custom movie, plus an orchestral score. Finally, in the most challenging part of the process, those 90 minutes of audio, along with the screenplay, get fed into the world's most sophisticated GAN, or generative adversarial network. Working scene by scene, the Black Box GAN would generate a cast of live action characters -- lifelike humans, or at least human-esque avatars -- built from the ground up, along with all of the settings, monsters, car chases, dogs, cats, and little surprises that make it feel like a real movie.

Education

Scientist Proposes a New Programming Language For Teaching Coding (and Python) (github.com) 160

Long-time Slashdot reader theodp tells us Netherlands-based scientist Felienne Hermans shared a radical idea at the 2020 ACM International Computing Education Research Conference for a new programming language to be used for teaching coding -- and for teaching Python: Hermans — an associate professor at the Leiden Institute of Advanced Computer Science — observes In her ICER presentation on Hedy that we don't overwhelm children who are beginning to learn to read with the messy rules of capitalization, punctuation, and sentence construction. So why do we think kids unfamiliar with programming concepts will be able to deal from the get-go with the chock-full-of-syntax-challenges presented by even a "simple" Python loop?

Hedy (proof-of-concept beta) attempts to reduce cognitive load by introducing programming with different "levels" that gradually and gently introduce children to new commands and increasingly complex syntax. Hedy, Hermans explains in a paper, is "a gradual language with an increasingly complex syntax, based on how punctuation is taught to novice readers in natural language education."

Programming

What Makes Some Programming Languages the 'Most Dreaded'? (oreilly.com) 137

O'Reilly media's Vice President of Content Strategy (also the coauthor of Unix Power Tools) recently explored why several popular programming languages wound up on the "most dreaded" list in StackOverflow's annual developer survey: There's no surprise that VBA is #1 disliked language. I'll admit to complete ignorance on Objective C (#2), which I've never had any reason to play with. Although I'm a Perl-hater from way back, I'm surprised that Perl is so widely disliked (#3), but some wounds never heal. It will be interesting to see what happens after Perl 7 has been out for a few years. Assembly (#4) is an acquired taste (and isn't a single language)...
But he eventually suggests that both C and Java might be on the list simply because they have millions of users, citing a quote from C++ creator Bjarne Stroustrup: "there are only two kinds of languages: the ones people complain about and the ones nobody uses." Dislike of a language may be "guilt by association": dislike of a large, antiquated codebase with minimal documentation, and an architectural style in which every bug fixed breaks something else. Therefore, it's not surprising to see languages that used to be widely used but have fallen from popularity on the list... Java has been the language people love to hate since its birth. I was at the USENIX session in which James Gosling first spoke about Java (way before 1.0), and people left the room talking about how horrible Java was — none of whom had actually used the language because it hadn't been released yet...

If there's one language on this list that's associated with gigantic projects, it's Java. And there are a lot of things to dislike about it — though a lot of them have to do with bad habits that grew up around Java, rather than the language itself. If you find yourself abusing design patterns, step back and look at what you're doing; making everything into a design pattern is a sign that you didn't understand what patterns are really for... If you start writing a FactoryFactoryFactory, stop and take a nice long walk. If you're writing a ClassWithAReallyLongNameBecauseThatsHowWeDoIt, you don't need to. Java doesn't make you do that... I've found Java easier to read and understand than most other languages, in part because it's so explicit — and most good programmers realize that they spend more time reading others' code than writing their own.

He also notes that Python only rose to #23 on the "most dreaded" languages list, speculating developers may appreciation its lack of curly braces, good libraries, and Jupyter notebooks. "Python wins the award for the most popular language to inspire minimal dislike. It's got a balanced set of features that make it ideal for small projects, and good for large ones."

"And what shall we say about JavaScript, sixteenth on the list? I've got nothing. It's a language that grew in a random and disordered way, and that programmers eventually learned could be powerful and productive... A language that's as widely used as JavaScript, and that's only 16th on the list of most dreaded languages, is certainly doing something right. But I don't have to like it."
Python

InfoWorld Lists 'Four Powerful Features Python is Still Missing' (infoworld.com) 79

InfoWorld's senior writer calls Python a "living language," citing its recent addition of the "walrus operator" for in-line assignments and the newly-approved pattern matching.

"And they're only two of a slew of useful features that could be added to Python to make the language more expressive, more powerful, more suited to the modern programming world. What else might we wish for?" True constants - Python doesn't really have the concept of a constant value... [E]very time a name is used, Python goes to the trouble of looking up what object it's pointing at. This dynamism is one of the chief reasons Python runs more slowly than some other languages. Python's dynamism offers great flexibility and convenience, but it comes at the cost of runtime performance. One advantage of having true constant declarations in Python would be some reduction in the frequency of object lookups that take place during runtime, and thus better performance. If the runtime knows ahead of time that a given value never changes, it doesn't have to look up its bindings...

True overloading and generics - In many languages, multiple versions of the same function can be written to work with different kinds of input... PEP 3124, advanced in April 2007, proposed a mechanism for decorating functions to indicate they could be overloaded. The proposal was deferred rather than being rejected outright — meaning the idea was fundamentally sound, but the time wasn't right to implement it. One factor that might speed the adoption of overloading in Python — or cause the idea to be ditched entirely — is the implementation of the newly proposed pattern matching system.

In theory, pattern matching could be used under the hood to handle overload dispatch. However, pattern matching could also be given as a rationale for not implementing generics in Python, since it already provides an elegant way to dispatch operations based on type signatures. So we might get true overloading in Python one day, or its advantages might be superseded by other mechanisms.

The article lists two more features Python "probably won't get" — starting with multiline lambdas (anonymous functions). Guido van Rossum had argued in 2006 he couldn't find an acceptable syntax, and the article argues "there is probably no way to do it that doesn't involve creating a special case." And it argues the final missing feature is tail recursion optimizations, "where functions that call themselves don't create new stack frames in the application, and thus risk blowing up the stack if they run for too long.

"Python doesn't do this, and in fact its creators have consistently come out against doing so."

Slashdot Top Deals