And we still have COBOL
No matter how good the replacement language is there will be legacy code around for decades written in the old language.
Mozilla says it will next month ship the first official Firefox build that sports code written in its more-secure-than-C Rust programming language. The Firefox 48 build – due out August 2 – will include components developed using Rust, Moz's C/C++-like systems language that focuses on safety, speed and concurrency. It's hoped …
"No matter how good the replacement language is there will be legacy code around for decades written in the old language."
I know of no good replacements for COBOL. I often wonder if the poor performance of financial IT these days is down to those Banks feeling the need to move to the likes of Java.
Having just yesterday come across a bug report 15 years old, I have to ask: how far do their intentions go? Security... or relevancy?
The defining comment (Hixie(!) from 2002) in that bug was that, umm, paraphrasing, "all this was designed with the relevant C++ code so deep as to make the needed flexibility impossible." In other words, we can't fix the problem (can't respond to changes in CSS) "because C++".
So how far do their ambitions go? Will they use their new sparkly language facility to rewrite all the rotten guts that have caused bugs to be stuck on "this sucks, but we can't do anything about it" for years?
As it is, desertions proceed as people keep coming up against "can't fix", "won't fix", and "who gives a shit?" situations. Firefox has become the "sick man of browsers".
But... if they would use their new Rust as a catalyst, a spark to initiate change and rework/replace the underlying grunge, they could actually get people interested in helping them, new people! After all, everyone likes pyrotechnics, and with Rust they're halfway to some serious fireworks!
I'm not really sure if your comment has a point or is just a rant.
Yes, Firefox has had some horrible bugs around for ages. Yes, pretty much the whole development team has been replaced at least twice in this time. Yes, they've had lots of pet projects, UI fuckery and focus shifts. As have all the other browser makers. And your point is?
Rust is one of the more interesting projects to come out of Firefox and it will be interesting to see whether in the hostile environment of the internet it can fulfil its promise.
Some people seem to have no sense of proportion; any large codebase that 's been around for a while will have bugs that are a) minor and b) disproportionately hard to fix. And some of the ciomments are classic (paraphrasing slightly).
"What if the user doesn't want people messing with the UI".
"We are web designers, we don't care what the user wants."
When the revolution comes, these people will be first against the wall. Shooting them would be too good - I'll just paint it lime green with purple spots.
That is misrepresenting the bug and comment thread.
The bug is about having coloured scrollbars which use native widgets on the platforms, e.g. on OSX it uses the C based Carbon API.
The comment says coloured scrollbars require changes across the rendering layer, stuff all to do with C++.
It is different as in "has been done".
I am not sure how to define "prevent compilation of unsafe code", and even if that's theoretical possible. I am not a big fan of "let's create yet another language", but rolling one up with security in mind (and more, like concurrency) for this very purpose seems to be a fine idea to me.
The statement that the speed matches that the C++ code is IMO also good news.
It isn't cool. Today you need always a new language with a silly name, just it needs to be some variant of C/C++ anyway, or developers will be scared off if they don't see curly braces.
But it is true that C++ is often designed to meet more the convoluted theories of academics than to cover dire needs of developers - and that often leads to unsafe code and broad use of "tricks" to overcome design issues.
C++ loved by the pros, hated by the fakers.
There are blemishes like any language, but the arm chair, language researchers never mention anything even vaguely credible.
How about e.g. the generated assembly from a C++ program is a little harder to read than one written in C, and that is purely down to the heavily optimized STL implementations, applications that don't use the STL and do purely C style operations, will of course not have this issue.
I think your chief complaint, with C++ is that it's harder to pretend you know the language.
I learned C++ with Borland Turbo C++, that is, no C++95, no STL!!! It's a perfectly functional language (no pun intended).
I do hate that the response to "it's so hard to do this right" is always "get someone smarter to make a better language/compiler, so I don't have to improve my own skill set in any way!"
Software Development is truly lowering itself to the lowest common denominator more and more every year.
@hellwig there was no "C++95", the earliest standardization was ANSI in 1997, this was later ratified by ISO to become ISO/IEC standard 14882:1998 (hence called C++98). Bjarne's Annotated Reference Manual on the other hand is dated 1990, so you are not referring to that either. And C++ only very recently acquired functional capabilities (e.g. compile-time immutable data and functions, lambda expressions or std::function wrapper). Finally I do not know what you are referring to with "lowering to the lowest common denominator", as the new languages such as Swift or Rust are rather more refined than old ones, since they build on the experience on those who created these older languages. There is no "lowering the the common denominator" here, I think last such effort on creating a new language was PHP which is nowhere close to the topic at hand.
So, as you can see I am truly confused by your post above, care to explain?
@Bronek Kozicki
Yes, I meant C++98, I work with Ada too much (Ada 83, Ada 95, Ada 2005, Ada 2012, yay!). I was simply referring to the fact that Borland Turbo C++ (3.X and certain 4.X varieties) was absent the C++98 STLs. Rather than (as a high schooler learning to program) rely on "magical" (hidden) implementations of Lists, Sorts, etc..., we implemented our own directly in C++. As the whole point was to learn, not be overly efficient.
People are lacking that understanding, because modern languages and infrastructures are abstracting safety and security away from the developers. Therefore, when those same people revert to a more capable but less secure/safe language, you get C/C++ modules for FireFox written by people who don't have a proper respect for safe programming methods.
I'll restate this: It seems silly to me that the answer to "we're getting a lot of crappy code" is to have someone smarter make a smarter/safer language, instead of training people how to do it the right way in the first place.
Think of it this way: You have an assembly line assembling cars. One of the folks on your line forgets to tighten the lugnuts on one of the wheels every time. Do you a) train this person better, b) replace them with someone more competent, or c) design the car to drive on 3 wheels because "let's face it, wheels are gonna fall off".
Computer Programming is going the route of C) above, and that, to me, is lowering the standard.
And my "no pun intended" literally meant I was not trying to imply C++ was a truly functional language. I meant it functioned fine as a language.
I chose option d) design the car to make it more difficult to forget to tighten the lungs, which is not on the list. That's what new language design is about - to enable more robust software design, i.e. one where bugs stand out more, and correct programs easier to write than incorrect ones. This could be based on statistical observations (e.g. multithreaded programs usually work better if data passed between threads are immutable), or other collective experience of language designers.
Define "unsafe"? It's sort of difficult to do this without coming up with some kind of language specification which a compiler then implements. While it might be able to use the compiler for C, it looks like they have taken the opportunity to change the syntax and semantics as well, which like much of the Mozilla stuff, is heavily influenced by Python. Presumably the idea behind this is to encourage a particular programming style which reduces the number of errors that the compiler has to pick up.
The Rust docs contain further information: https://doc.rust-lang.org/book/bibliography.html
How is this different to having an improved compiler for C
Short answer: very different. Yes in theory it is possible to add all kinds of checks to C compiler, but the result of this would be that any sane C programmer will call the resulting limitations unreasonable, and for good reason. It would be very difficult to write any program in C with checks as restrictive as the ones built into Rust.
In case anyone wanted to ask "so how is it possible to write any program in Rust" the answer is simple : it is a different language, so it can provide syntax for safe alternatives, without having to worry about syntax compatibility with C compilers. The need to maintain this compatibility is what really hamstrung the evolution of C++ language (in 21st century i.e. C++11 and after), but Rust has no such limitations.
On esr, had to rollback to 38.8 after the 45.2 replacement disabled all my add-ons (possibly not CTR), without any chance to abort.
Looking for a good replacement, with devs who care about the user, not Chrome, Otter, or Qupzilla.
Realistic suggestions for 64-bit Linux please.
... and why would anyone do it? The whole point of using specific language is to match the desired design (sometimes architecture) with tools available. The language informs design of the project, because it is created to support certain design constructs. By converting between languages you are losing the benefits of this design match and gain nothing, with the only exception when using lower level language as object file format. But Rust is high level language, so the conversion to Rust will not buy you that.
Unless of course the answer is "for fun" in which case, sure why not.
At The Linux Foundation's Open Source Summit in Austin, Texas on Tuesday, Linus Torvalds said he expects support for Rust code in the Linux kernel to be merged soon, possibly with the next release, 5.20.
At least since last December, when a patch added support for Rust as a second language for kernel code, the Linux community has been anticipating this transition, in the hope it leads to greater stability and security.
In a conversation with Dirk Hohndel, chief open source officer at Cardano, Torvalds said the patches to integrate Rust have not yet been merged because there's far more caution among Linux kernel maintainers than there was 30 years ago.
Analysis Toxic discussions on open-source GitHub projects tend to involve entitlement, subtle insults, and arrogance, according to an academic study. That contrasts with the toxic behavior – typically bad language, hate speech, and harassment – found on other corners of the web.
Whether that seems obvious or not, it's an interesting point to consider because, for one thing, it means technical and non-technical methods to detect and curb toxic behavior on one part of the internet may not therefore work well on GitHub, and if you're involved in communities on the code-hosting giant, you may find this research useful in combating trolls and unacceptable conduct.
It may also mean systems intended to automatically detect and report toxicity in open-source projects, or at least ones on GitHub, may need to be developed specifically for that task due to their unique nature.
Open-source cross-platform email and messaging client Thunderbird has hit version 102, with a new look and improved functionality, including Matrix chat support.
The latest release is the first major upgrade since version 91, which The Reg looked at last August. This is normal for the app – it follows the same approximately annual release cycle as Firefox's Extended Support Releases, the most recent of which was also version 91. From now until the next major release, Thunderbird 102 will get a regular stream of minor updates and bug fixes.
102 has a modernized look and feel. There's a new "Spaces" toolbar, which appears vertically on the left of the app window and lets users quickly flip between inbox, address book, calendar, task list, and chat tabs. All of these are built-in features – the former Lightning calendar add-on is now an integral part of the app, as is PGP support, which used to be an add-on called Enigmail. Thunderbird can talk to various groupware calendar and contact servers, including both private and corporate Google Mail accounts, Microsoft Exchange and Office 365, and others.
Firefox has been fighting the war on browser cookies for years, but its latest privacy feature goes well beyond mere cookie tracking to stop URL query parameters.
HTML query parameters are the jumbled characters that appear after question marks in web addresses, like website.com/homepage?fs34sa3aso12knm. Sites such as Facebook and HubSpot use them to track users when links are clicked, and other websites like YouTube use them to enable certain site features too.
On June 28, Firefox 102 released a feature that enables the browser to "mitigate query parameter tracking when navigating sites in ETP strict mode." ETP, or enhanced tracking protection, encompasses a variety of Firefox components that block social media trackers, cross-site tracking cookies, fingerprinting and cryptominers "without breaking site functionality," says Mozilla's ETP support page.
The Software Freedom Conservancy (SFC), a non-profit focused on free and open source software (FOSS), said it has stopped using Microsoft's GitHub for project hosting – and is urging other software developers to do the same.
In a blog post on Thursday, Denver Gingerich, SFC FOSS license compliance engineer, and Bradley M. Kuhn, SFC policy fellow, said GitHub has over the past decade come to play a dominant role in FOSS development by building an interface and social features around Git, the widely used open source version control software.
In so doing, they claim, the company has convinced FOSS developers to contribute to the development of a proprietary service that exploits FOSS.
One of the GNOME developers has suggested that the next major release of Gtk could drop support for the X window system.
Emmanuele Bassi opened a discussion last week on the GNOME project's Gitlab instance that asked whether the developers could drop X11 support in the next release of Gtk.
At this point, it is only a suggestion, but if it gets traction, this could significantly accelerate the move to the Wayland display server and the end of X11.
A crack in Apple's walled garden appeared yesterday as the iPhone vendor opened up an option for alternative in-app payment processing within apps distributed in South Korea.
The commission levied by Apple for in-app transactions, which can be up to 30 percent, has long irked app developers. Epic Games famously went before US courts to protest Apple's rules and lost.
South Korea's lawmakers, however, took matters into their own hands and targeted Google and Apple with a law requiring both to open their app stores to third party payment options. Google made its update at the beginning of the year, effectively cutting its service fee by four percent.
Analysis A blog post calling for a boycott of the well-known 7-Zip compression app is attracting some discussion on Reddit.
However, it seems criticism for Igor Pavlov and his FOSS compression app 7-Zip is somewhat overblown and may reflect the anti-Russian sentiment of the times.
7-Zip has been around since 1999 and during that two-decade span there have been more widely used Windows compression tools (WinZip and WinRAR, in particular) they are shareware, so try-before-you-buy versus free.
The Indian government has decided to share with the world the many e-governance tools it has created to run the country, under the name Indiastack.global.
Prime minister Narendra Modi announced the stack yesterday, declaring "This offering of India to the Global Public Digital Goods repository will help position India as the leader in building Digital Transformation projects at a population scale and prove to be of immense help to other countries which are looking for such technology solutions."
Such nations can now get their hands on India's identity service Aadhaar, the DigiLocker cloud storage locker, the CoWin Vaccination Platform, the Government e-Marketplace, and the Ayushman Bharat Digital Health Mission.
EndeavourOS is a rolling-release Linux distro based on Arch Linux. Although the project is relatively new, having started in 2019, it's the successor to an earlier Arch-based distro called Antergos, so it's not quite as immature as its youth might imply. It's a little more vanilla than Antergos was – for instance, it uses the Calamares cross-distro installer.
EndeavourOS hews more closely to its parent distro than, for example, Manjaro, which we looked at very recently. Unlike Manjaro, it doesn't have its own staging repositories or releases. It installs packages directly from the upstream Arch repositories, using the standard Arch package manager pacman
. It also bundles yay to easily fetch packages from the Arch User Repository, AUR. The yay
command takes the same switches as pacman
does, so if you wanted to install, say, Google Chrome, it's as simple as yay -s google-chrome
and a few seconds later, it's done.
Biting the hand that feeds IT © 1998–2022