See why Python change caused such an awful result? Dynamic typing. Compiler gives helpful hints and unless you are doing something exceptionally crazy… you don't need years of work to adopt new version. Yet, somehow, cries about such a awful deed are not raised to the skies! Why? Because it's easy to adopt Haskell codebase to the new reality. That's because the last released version of language is 10 years old by now, language have evolved (in backward-incompatible way, mind you!) yet nobody bothered to create coherent implementation for novices. If you think Python compatibility story is bad… in Haskell you quite literally couldn't even finish tutorial without hitting incompatibility with manual and the one version of language everyone is using. ![]() > Most people learned a few things since then. Posted 20:59 UTC (Sat) by khim (subscriber, #9252) I never pretend, however, that FLOSS is perfect, and I will not remain completely silent when I see a bad trend being taken up en mass as is the case with Python and similar languages which have a notable "feature" of planned compatibility-breaking change. That energy represents green house gas emissions, strip mining, oil spills, etc and is actually bad for the planet. No one device represents much actual use on its own, but taken as a whole, this is a lot of wasted energy. They increase the amount of electricity used by servers, workstations, and other computing devices. For all the talk of safety, heavy languages are worse. All of the arguments against languages like C which are "unsafe" are a thousand leagures more safe than blindly trusting unvetted code from a repo in a language like Python.įurther, Python is already slow. This isn't bad just because the unvetted code may be poorly performant, but it could also be insecure. They just grab whatever piece fits their needs right now, and use it in production. With repositories of unvetted code, developers have become LEGO players. macOS has also joined this rapid release cycle with backward breaking releases, but their fan base is loyal enough to withstand this.Īdding to this already major problem, Python and languages like it have encouraged bad coding practices. Each new release of Windows 10 breaks things, sometimes horribly, rendering some machines unbootable. With recent releases, Microsoft has actually become worse than FLOSS in this regard. This dramatically raises the cost of doing business, lowers code quality, and makes the use of computers less enjoyable generally speaking (unless you're in the field and kind of into that sort of thing). They are giving developers a chance to test on the next release knowing that that new release will not be compatible. This is why Red Hat now offers the alpha, beta, and stable releases. They break compatibility with prior releases on each release. Linux distributions these days are exactly what Windows wasn't. It would have represented too high a barrier to entry in what was then still a new and a difficult field. If Microsoft's operating systems had changed every year, becoming slightly incompatible with previous releases, no one would have used Windows. A major part of their success was a stable API & ABI as well as backward compatibility. IBM did compete with Microsoft as did DEC and BeOS and others. ![]() The success of Windows over the last 3 decades was not just due to being IBM compatible software. Adding that the actual language being used is now a constantly moving target makes this even worse. This makes writing software for the FLOSS environment very high in maintenance costs. The open source world is already a constantly moving target as concerns dependency management of the various libraries, binaries, and applications. The reason for people persistently commenting on this is because it actually matters.įirst, any language that is designed to be deprecated over time isn't worth using. ![]() Not all are GCC-related, though: one particularly nice C example was POSIX starting to include a getline function (which originated in glibc), so glibc promoted getline into its POSIX-namespace identifier subset and suddenly every single program which hadn't defined -D_GNU_SOURCE but used the fairly obvious and not at all reserved word 'getline' as an identifier no longer compiled. Typically they are of the form "libstdc++ header X no longer includes header Y, which was never guaranteed" and it turns out that hundreds of applications are assuming that it did and they all need (admittedly small) changes. Oh, they happen, particularly in the C++ world the GCC changes documents describe a lot of them. I've never heard of such things for C++ or C for instance. Python minor version incompatibilities seems to be on par with Java major version incompatibilities (described in a comment above). Posted 21:20 UTC (Wed) by nix (subscriber, #2304)
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |