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."
Java

Python Overtakes Java in New Language Popularity Ranking, As Rust Reaches Top 20 (zdnet.com) 91

"Programming language Python is now firmly the second most popular programming language, for the first time knocking Java out of the top two places in RedMonk's language popularity rankings," reports ZDNet: It's the first time since 2012 that Java is not one of the top two most popular languages in the developer analyst firm's programming language popularity list. The company's previous rankings in March placed machine-learning propelled Python in a tie for second place with Java, behind JavaScript.

RedMonk's influential programming popularity rankings are based on GitHub and Stack Overflow data. The company combines them "for a ranking that attempts to reflect both code (GitHub) and discussion (Stack Overflow) traction", says RedMonk analyst Stephen O'Grady, who notes "all numerical rankings should be taken with a grain of salt....

"Python is the first non-Java or JavaScript language ever to place in the top two of these rankings by itself, and would not have been the obvious choice for that distinction in years past," O'Grady notes, comparing it to Perl in its heyday because it has become a "language of first resort" and the "glue" for thousands of small projects, while enjoying high adoption in growing categories such as data science...

Five-year-old systems-programming language Rust, created by Mozilla, has hit a more positive milestone, for the first time becoming the 20th most popular language in RedMonk's rankings.

Last week IEEE Spectrum also declared Python "dominated" their assessment of language popularity (compiled from 11 different online metrics), followed by Java and C (and then C++ and JavaScript).
The Internet

Cloudflare Launches Workers Unbound, the Next Evolution of Its Serverless Platform (techcrunch.com) 32

Cloudflare today announced the private beta launch of Workers Unbound, the latest step in its efforts to offer a serverless platform that can compete with the likes of AWS Lambda. TechCrunch reports: The company first launched its Workers edge computing platform in late 2017. Today it has "hundreds of thousands of developers" who use it, and in the last quarter alone, more than 20,000 developers built applications based on the service, according to the company. Cloudflare also uses Workers to power many of its own services, but the first iteration of the platform had quite a few limitations. The idea behind Workers Unbound is to do away with most of those and turn it into a platform that can compete with the likes of AWS, Microsoft and Google. Cloudflare aims to expose to third-party developers all of the services it builds for its internal consumption. The original Workers service will continue to operate (but under the Workers Bundled moniker) and essentially become Cloudflare's serverless platform for basic workloads that only run for a very short time. Workers Unbound -- as the name implies -- is meant for more complex and longer-running processes.

When it first launched Workers, the company said that its killer feature was speed. Today, [CEO Matthew Prince] argues that speed obviously remains an important feature -- and Cloudflare Workers Unbound promises that it essentially does away with cold-start latencies. But developers also adopted the platform because of its ability to scale and its price. Indeed, Workers Unbound, Cloudflare argues, is now significantly more affordable than similar offerings. "For the same workload, Cloudflare Workers Unbound can be 75% percent less expensive than AWS Lambda, 24 percent less expensive than Microsoft Azure Functions, and 52 percent less expensive than Google Cloud Functions," the company says in today's press release.

Another feature Prince highlighted is regulatory compliance. "I think the thing we're realizing as we talk to our largest enterprise customers is that for real companies -- not just the individual developer hacking away at home -- but for real businesses in financial services or anyone who has to deal with a regulated industry, the only thing that trumps ease of use is regulatory compliance, which is not sexy or interesting or anything else but like if your GC says you can't use XYZ platform, then you don't use XYZ platform and that's the end of the story," Prince noted. Speed, though, is of course something developers will always care about. Prince stressed that the team was quite happy with the 5ms cold-start times of the original Workers platform. The way the team engineered this is by queuing up the process while the two servers are still negotiating their TLS handshake. Cloudflare also argues that developers can update their code and have it go live globally within 15 seconds. Another area the team worked on was making it easier to use the service in general. Among the key new features here is support for languages like Python and a new SDK that will allow developers to add support for their favorite languages, too.

Python

Python 'Dominates' IEEE Spectrum's 2020 List of Top Programming Languages (ieee.org) 155

IEEE Spectrum's August issue will include an article titled "The Top Programming Languages."

Calculated using metrics from 11 online sources, it concludes that "One thing remains constant: the dominance of Python." Our default ranking is weighted toward the interests of an IEEE member, and looking at the top entries, we see that Python has held onto its comfortable lead, with Java and C once again coming in second and third place, respectively. Arduino has seen a big jump, rising from 11th place to seventh. (Purists may argue that Arduino is not a language but rather a hardware platform that is programmed using a derivative of Wiring, which itself is derived from C/C++. But we have always taken a very pragmatic approach to our definition of "programming language," and the reality is that when people are looking to use an Arduino-compatible microcontroller, they typically search for "Arduino code" or buy books about "Arduino programming," not "Wiring code" or "C programming.")

One interpretation of Python's high ranking is that its metrics are inflated by its increasing use as a teaching language: Students are simply asking and searching for the answers to the same elementary questions over and over. There's an historical parallel here. In the 1980s, BASIC was very visible... But few professional programmers used it, and when the home computer bubble burst, so did BASIC's, although some advanced descendants like Microsoft Visual Basic are still relatively popular professionally.

There are two counterarguments, though: The first is that students are people, too! If we pay attention only to what professional and expert coders do, we're at risk of missing an important part of the picture. The second is that, unlike BASIC, Python is frequently used professionally and in high-profile realms, such as machine learning, thanks to its enormous collection of high quality, specialized libraries.

C++ came in fourth, followed by JavaScript, R, "Arduino," Go, Swift, and Matlab.

But because different programmers have different needs, they've also created a special interactive version of their rankings online, "allowing you to weight the metrics as you see fit... "
SuSE

SUSE Releases Major Linux Update (zdnet.com) 27

SUSE has released the next versions of its flagship operating system, SUSE Linux Enterprise (SLE) 15 Service Pack 2 and its latest infrastructure management program, SUSE Manager 4.1. ZDNet reports: SLE 15 SP2 is available on the x86-64, Arm, IBM POWER, IBM Z, and LinuxONE hardware architectures. This new Linux server edition is based on the Linux 5.3 kernel. This new kernel release includes upstream features such as utilization clamping support in the task scheduler, and power-efficient userspace waiting. Other new and noteworthy features include:

- Support for migration from openSUSE Leap to SUSE Linux Enterprise Server (SLES). With this, you can try the free, community openSUSE Linux distro, and then, if you find it's a good choice for your business, upgrade to SLES.
- Extended Package Search. By using the new Zypper, SUSE's command line package manager, command option -- zypper search-packages -- sysadmins can now search across all SUSE repositories, even unenabled ones. This makes it easier for administrators to find required software packages.
- SLE Software Development Kit (SDK) is now integrated into SLE. Development packages are packaged alongside regular packages. - Python 3: SLE 15 offers full support for Python 3 development. SLE still supports Python 2 for the time being.
- 389 Directory Server replaces OpenLDAP as the LDAP directory service.
- Repository Mirroring Tool (RMT) replaces Subscription Management Tool (SMT). RMT allows mirroring SUSE repositories and custom repositories. You can then register systems directly with RMT. In environments with tightened security, RMT can also proxy other RMT servers.
- Better business continuity with improved SLE Live Patching. SUSE claims Live Patching increases system uptime by up to 12 months. SLE Live Patching is also now available for IBM Z and LinuxONE mainframe architectures.

As for SUSE Manager 4.1, this is an improved open-source infrastructure management and automation solution that lowers costs, identifies risk, enhances availability, and reduces complexity in edge, cloud, and data center environments. With SUSE Manager you can keep servers, VMs, containers, and clusters secure, healthy, compliant, and low maintenance whether in private, public, or hybrid cloud. That's especially important these days thanks to coronavirus pandemic IT staff disruptions. SUSE Manager 4.1 can also be used with the Salt DevOps program. Its vertical-market brother, SUSE Manager for Retail 4.1, is optimized and tailored specifically for retail. This release comes with enhancements for small store operations, enhanced offline capabilities and image management over Wi-Fi, and enhanced virtual machine management and monitoring capabilities. Simultaneously it can scale retail environments to tens of thousands of end-point devices and help modernize point-of-service rollouts.

Programming

TIOBE's Surprisingly Popular Programming Languages: R, Go, Perl, Scratch, Rust, and Visual Basic 6 (techrepublic.com) 101

The R programming language is experiencing a surge in popularity "in the slipstream of Python," according to this month's TIOBE index, leaping into the top ten.

"For historical context, we wrote of R's spot in TIOBE nearly two years ago, and it had just made the leap from #50 to #39," writes programming columnist Mike Melanson.

ZDNet writes: In May, when R crashed out of the top 20 for the first time in three years, Tiobe speculated that the language could be a victim of consolidation in statistical programming, with more developers in the field gravitating towards Python.
But there's been a lot of motion since then, Tech Republic reports: R rose one space to eighth place in July, but its comparison to 2019 is where the real surprise lies: It was in 20th place at the same time last year. TIOBE CEO Paul Jansen cites two reasons why R may be increasing in popularity:

- Universities and research institutes have moved away from commercial statistical languages like SAS and Stata in favor of open source languages Python and R.

- The increase in analytics being used to search for a COVID-19 vaccine....

The largest gainers in popularity between July 2019 and July 2020 are Go, which jumped from 16th to 12th place, Perl, jumping from No. 19 to No. 14, Scratch, jumping from No. 30 to No. 17, Rust, which moved from No. 33 to No. 18, and PL/SQL, which moved from No. 23 to No. 19.

Ruby fell the most, moving from 11th place to 16th, while SQL, MATLAB, and Assembly Language also slipped down the list.

ZDNet adds that "Besides R's upwards shift, Tiobe's July index doesn't show much movement in the popularity of the top languages. The top 10 in descending order are C, Java, Python, C++, C#, Visual Basic, JavaScript, R, PHP and Swift."

Visual Studio magazine argues that the biggest surprise may be that the 29-year-old language classic Visual Basic is still in the top 20 — since its last stable release was 22 years ago, and by 2008 it was finally retired by Microsoft. "VB6 just refuses to go away, achieving cult-like status among a group of hard-core supporters."
Twitter

Twitter Engineers Replacing Racially Loaded Tech Terms Like 'Master,' 'Slave' (cnet.com) 350

For Regynald Augustin, a Black programmer at Twitter, the impetus for change arrived in an email last year with the phrase "automatic slave rekick." The words were just part of an engineering discussion about restarting a secondary process, but they prompted Augustin to start trying to change Twitter's use of words with racist connections. Augustin was used to seeing the term "slave" in technical contexts. "But with 'rekick' -- I was madder than I ever thought I'd be in the workplace," he said. From a report: First on his own and then joining forces with another engineer, Kevin Oliver, he helped spearhead an effort to replace terms like "master," "slave," "whitelist" and "blacklist" with words that didn't hearken back to oppressive parts of United States history and culture. He recounted his thoughts at the time: "This has to stop. This isn't cool. We have to change this now." No one expects that changing technical terms will end centuries of racial injustice. But some people at technology companies, including Oliver and Augustin at Twitter, are pressing for the changes that are within their reach. That includes the effort to replace racially fraught technology terms like "master" and "slave" that describe things like databases, software projects, camera flashes and hard drives. Managers at the social network formalized the two engineers' effort in January, endorsing work to address the issue systematically across the engineering division and expanding it to terms linked to discrimination on the basis of sex, age and disabilities -- replacing "man hours" and "sanity check," for example. Oliver and Augustin detailed the effort in an exclusive interview with CNET. Twitter is the latest company to make these changes. In recent weeks, scores of firms including JPMorgan GitHub, and developers of Python, Go, and Android have adopted similar measures.
Programming

JPMorgan Drops Terms 'Master,' 'Slave' From Internal Tech Code and Materials (reuters.com) 285

JPMorgan Chase is eliminating terms like "blacklist," "master" and "slave" from its internal technology materials and code as it seeks to address racism within the company, said two sources with knowledge of the move. Reuters reports: The terms had appeared in some of the bank's technology policies, standards and control procedures, as well in the programming code that runs some of its processes, one of the sources said. The phrases "master" and "slave" code or drive are used in some programming languages and computer hardware to describe one part of a device or process that controls another. "Blacklist" is used to describe items that are automatically denied, like a list of websites forbidden by a company's cybersecurity division. "Whitelist" means the opposite - a list of items automatically approved. While JPMorgan appears to be the first in the financial sector to remove most references to these racially problematic phrases, they're not the only company to do so. GitHub, Google, and Twitter are a few others who have made similar moves recently.
Programming

After 19 Years, Python May Finally Get a Pattern Matching Syntax (infoworld.com) 76

"A proposal under consideration by Python's development team would finally bring pattern matching statements to the language," reports InfoWorld: The creators of the Python language are mulling a new proposal, PEP 622, that would finally bring a pattern matching statement syntax to Python. The new pattern matching statements would give Python programmers more expressive ways of handling structured data, without having to resort to workarounds...

While Python has lacked a native syntax for pattern matching, it has been possible to emulate it with if/elif/else chains or a dictionary lookup. PEP 622 proposes a method for matching an expression against a number of kinds of patterns using a match/case syntax:

match something:

case 0 | 1 | 2:
print("Small number")

case [] | [_]:
print("A short sequence")

case str() | bytes():
print("Something string-like")

case _:
print("Something else")


Supported pattern match types include literals, names, constant values, sequences, a mapping (basically, the presence of a key-value pair in the expression), a class, a mixture of the above, or any of those plus conditional expressions. Any matches that are ambiguous or impossible to resolve will throw an exception at runtime... If an object implements the __match__ method, it can be used to test if it matches a given class pattern and return an appropriate response.

One of the authors of the new PEP was Python creator Guido van Rossum, according to the article -- and he'd drafted an earlier pattern matching proposal back in 2006 that was rejected (following the rejection of an earlier proposal in 2001).

The article also notes that many aspects of this PEP were inspired by the way pattern matching works in Rust and Scala.
Programming

Stack Overflow Explores Why Developers Love TypeScript More Than Python (stackoverflow.blog) 93

Stack Overflow asked 65,000 programmers for their favorite programming language, and this year Microsoft's TypeScript knocked Python from the #2 spot. So they interviewed Microsoft's principal engineering lead for the language "to find out what about TypeScript makes it so dang lovable." Q: Do you remember why the team came up with TypeScript, why you wanted to release something like this?

A: When I joined the team, there were a lot of people at Microsoft who wanted to develop JavaScript at what we call "application scale." Teams like TFS and Office wanted to build large JavaScript applications. A lot of those people had familiarity with statically-typed languages — C++, C#, Java, that kind of thing. They wanted to have that static typing available both for conceptual scalability and for the tooling...

Q: Was there a point where you saw an adoption point of no return? Was there something that came along where people were like, oh, yeah, we do TypeScript now?

A: Oh, it was definitely Google announcing that they were going to use TypeScript with Angular. That's kind of lost to time now. But if you look at the graphs for TypeScript, literally any graph — GitHub stars, downloads, pull requests — you can see the exact point when that Angular announcement came out. And the graph just changes. It never looks back... TypeScript shores up that last rough edge on JavaScript and gives you something that's just really fun to work with and runs everywhere. I think if TypeScript were a language that was built on top of a less universal language or a less fun language, I don't think it would be as successful. It's really taking something that's great and making it better...

I think my favorite thing that I see is people on the Internet saying, 'I did this huge refactoring in TypeScript and I was refactoring for three hours. And then I ran my code and it worked the first time.' In a dynamic language, that would just never, ever happen....

I would just say to people, if static types aren't a good fit for you, for either your programming style or the problem you're working on, just skip it. That's fine. It's okay. I won't be offended. If someone can get a thirty thousand line application that gets its job done without static types, I'm very impressed. That just seems really difficult. But kudos to those people who make it work. Python's the same way. Very few people have working Python type annotations, but Python is incredibly popular. I think the data speaks for itself — I think Python is number three in the survey... I guarantee you that a very small proportion of those Python developers have static types. Whatever your problem domain is, that might be the best fit for you.

Programming

Microsoft's GitHub Offers Open-Source Developers 'One Linter to Rule Them All' (zdnet.com) 33

"GitHub says it's open-sourcing its in-house linting tool, the GitHub Super Linter, to clean up code," reports ZDNet: Having a tool that checks source code for programming blunders and other errors is useful for developers. Now Microsoft-owned GitHub has released the 'Super Linter' to help developers avoid the hassles of setting up code repositories with multiple linters...

GitHub describes it as a "simple combination of various linters, written in bash, to help validate your source code" for the purpose of preventing broken code from being uploaded to a 'master' branch, the key branch that other branches in a tree are merged to... The Super Linter Action lets developers 'lint' or check their code base using popular linters for Python, JavaScript, Go, XML, YAML, and more programming languages. As such, GitHub engineer Lucas Gravley describes the Super Linter as the "one linter to rule them all".

"The GitHub Super Linter was built out of necessity by the GitHub Services DevOps Engineering team to maintain consistency in our documentation and code while making communication and collaboration across the company a more productive experience," says Gravley... "When you've set your repository to start running this action, any time you open a pull request, it will start linting the code case and return via the Status API. It will let you know if any of your code changes passed successfully, or if any errors were detected, where they are, and what they are," explains Gravley.

The Super Linter doesn't fix problems but does flag them, so developers can then go back and fix them before they reach the master branch.

Robotics

Boston Dynamics Starts Selling Its Spot Robot -- For $74,500 (venturebeat.com) 55

An anonymous reader writes: Boston Dynamics today opened commercial sales of Spot, its quadruped robot that can climb stairs and traverse rough terrain. Businesses can purchase the Spot Explorer developer kit for $74,500 at shop.bostondynamics.com. Spot Explorer includes the robot, two batteries, the battery charger, the tablet controller, a robot case, a power case, and Python client packages for Spot APIs. Boston Dynamics will also be selling Spot payloads, and customers will get software updates "when available." The company is offering free shipping for a limited time -- the website currently states that Spot Explorer ships in six to eight weeks.

The announcement marks a couple of milestones for the company founded in 1992. It's the first time businesses can purchase a Boston Dynamics robot directly. It's also the company's first online sales offering. Spot is only for sale in the U.S. for commercial and industrial use, but the company hopes to expand internationally this year. "We plan to manufacture around a thousand Spots in the next year but can increase that based on the demand," a Boston Dynamics spokesperson told VentureBeat. "We are exploring opportunities for enabling sales overseas this year." The company was originally planning to finish building 1,000 Spots by mid-2020, but the coronavirus pandemic disrupted that timeline.

Programming

GitHub, Android, Python, Go: More Software Adopts Race-Neutral Terminology (zdnet.com) 413

"The terms 'allowlist' and 'blocklist' describe their purpose, while the other words use metaphors to describe their purpose," reads a change description on the source code for Android -- from over a year ago. 9to5Mac calls it "a shortened version of Google's (internal-only) explanation" for terminology changes which are now becoming more widespread.

And Thursday GitHub's CEO said they were also "already working on" renaming the default branches of code from "master" to a more neutral term like "main," reports ZDNet: GitHub lending its backing to this movement effectively ensures the term will be removed across millions of projects, and effectively legitimizes the effort to clean up software terminology that started this month.

But, in reality, these efforts started years ago, in 2014, when the Drupal project first moved in to replace "master/slave" terminology with "primary/replica." Drupal's move was followed by the Python programming language, Chromium (the open source browser project at the base of Chrome), Microsoft's Roslyn .NET compiler, and the PostgreSQL and Redis database systems... The PHPUnit library and the Curl file download utility have stated their intention to replace blacklist/whitelist with neutral alternatives. Similarly, the OpenZFS file storage manager has also replaced its master/slave terms used for describing relations between storage environments with suitable replacements. Gabriel Csapo, a software engineer at LinkedIn, said on Twitter this week that he's also in the process of filing requests to update many of Microsoft's internal libraries.

A recent change description for the Go programming language says "There's been plenty of discussion on the usage of these terms in tech. I'm not trying to have yet another debate." It's clear that there are people who are hurt by them and who are made to feel unwelcome by their use due not to technical reasons but to their historical and social context. That's simply enough reason to replace them.

Anyway, allowlist and blocklist are more self-explanatory than whitelist and blacklist, so this change has negative cost.

That change was merged on June 9th -- but 9to5Mac reports it's just one of many places these changes are happening. "The Chrome team is beginning to eliminate even subtle forms of racism by moving away from terms like 'blacklist' and 'whitelist.' Google's Android team is now implementing a similar effort to replace the words 'blacklist' and 'whitelist.'" And ZDNet reports more open source projects are working on changing the name of their default Git repo from "master" to alternatives like main, default, primary, root, or another, including the OpenSSL encryption software library, automation software Ansible, Microsoft's PowerShell scripting language, the P5.js JavaScript library, and many others.
Robotics

Lego Unveils New 'Robot Inventor' Mindstorms Kit (pcmag.com) 42

After seven years, Lego has finally unveiled a new Mindstorms kit, reports PC Magazine -- the Lego Mindstorms Robot Inventor, available this fall for $359: The Robot Inventor kit lets kids (or adults) build five different robot models out of 949 pieces, ranging from a four-legged walker to a bipedal wheeled robot that can give high-fives. All of these robots can be programmed to perform different tricks, like grabbing items, firing plastic projectiles, avoiding obstacles, and playing various sports with a ball.

The kit includes four low-profile, medium-angular motors; a color and light sensor; and a distance sensor, which work together with the Intelligent Hub block to power these robots and execute commands. Of course, like all Mindstorms kits, you can build your own robotic creations with the tools at hand, and add Lego Technic and System pieces for more complex projects.

The Intelligent Hub serves as the brain of Lego Mindstorms, and the block that houses the Mindstorms Robot Inventor Kit is the most advanced one yet. It features six input/output ports for sensors and motors, a six-axis gyro/accelerometer, a speaker, and a five-by-five LED matrix. The Intelligent Hub and all robots built with it can be controlled wirelessly over Bluetooth with the Lego Mindstorms Robot Inventor app for Android, iOS, Windows 10, and macOS. The app supports programming in both the tile-based Scratch language and in Python, for more complex projects that require the precision of written code.

AI

Python Overtakes Java? JetBrains Releases 'State of Developer Ecosystem' Survey (jetbrains.com) 67

The creators of the Kotlin programming language — the Czech software development company Jetbrains — announced results from their annual "State of the Developer Ecosystem" survey. This year's survey involved 19,696 developers in 18 countries, and found that:
  • JavaScript is the most used overall programming language. Websites are the most common type of application developers work on.
  • Python has overtaken Java in the list of programming languages used in the last 12 months. And it is also the most studied language. In the last 12 months 30% of respondents have started or continued to learn Python — even more than last year.
  • Go, Kotlin, and Python are the top 3 languages developers are planning to adopt or migrate to.

JetBrains also gathered some statistics from programmers for a special section on Lifestyle and Fun:

  • 65% said they preferred laptops, while 33% preferred desktops.
  • 52% said they contributed to charity.
  • 20% said they owned a cat; another 20% said they owned a dog.
  • 16% said they owned cryptocurrency.

And when asked if they contributed to open-source projects:

  • 44% said "No, but I would like to."
  • 20% said "I have only contributed a few times."
  • 16% said "Yes, from time to time (several times a year)."
  • 11% said "Yes, regularly (at least once a month)."
  • 4% said "No, and I would not like to."
  • 3% said "I work full-time on open-source code and get paid for it."
  • 2% said "I work full-time on open-source code but do not get paid for it."

Also interesting were the answers to the question: If your country's government replaced your courts with AI, would you trust it? The results were:

  • Probably not (26%)
  • Definitely not (24%)
  • Maybe (26%)
  • Probably yes (20%)
  • Definitely yes (5%)

Slashdot Top Deals