2017: The Year in Programming Languages (infoworld.com) 117
InfoWorld writes that 2017 "presented a mixed bag of improvements to both long-established and newer programming languages." An anonymous reader quotes their report:
Developers followed a soap opera over Java, with major disagreements over a modularization plan for standard Java and, in a surprising twist, Oracle washing its hands of the Java EE enterprise variant. Microsoft's TypeScript, meanwhile, has increased in popularity by making life easier for developers looking for an alternative to JavaScript. Microsoft also launched Q#, a language for quantum computing...
In web development, developers received a lot of help building with JavaScript itself or with JavaScript alternatives. Among the tools released in 2017 were: Google's Angular 5 JavaScript framework, released in November, featuring a build optimizer and supports progressive web apps and use of Material Design components... And React, the JavaScript UI library from Facebook, went to Version 16 in September, featuring a rewriting of the React core to boost responsiveness for complex applications...
TypeScript was not the only JavaScript alternative making waves this year. For web developers who would rather use Google's Go (Golang) language instead of JavaScript, the beta Joy compiler introduced in December promises to allow cross-compilation. Another language that offers compilation to JavaScript -- although it began on the JVM -- is Kotlin, which has experienced rising fortunes this year. It was boosted considerably by Google endorsing it in May for building Android applications, which has been chiefly the domain of Java...
2017 also saw the release of the long-awaited C++ 17.
Another 2017 memory: Eric Raymond admitting that he hates C++, and predicting that Go (but not Rust) will eventually replace C -- if not a new language like Cx.
In web development, developers received a lot of help building with JavaScript itself or with JavaScript alternatives. Among the tools released in 2017 were: Google's Angular 5 JavaScript framework, released in November, featuring a build optimizer and supports progressive web apps and use of Material Design components... And React, the JavaScript UI library from Facebook, went to Version 16 in September, featuring a rewriting of the React core to boost responsiveness for complex applications...
TypeScript was not the only JavaScript alternative making waves this year. For web developers who would rather use Google's Go (Golang) language instead of JavaScript, the beta Joy compiler introduced in December promises to allow cross-compilation. Another language that offers compilation to JavaScript -- although it began on the JVM -- is Kotlin, which has experienced rising fortunes this year. It was boosted considerably by Google endorsing it in May for building Android applications, which has been chiefly the domain of Java...
2017 also saw the release of the long-awaited C++ 17.
Another 2017 memory: Eric Raymond admitting that he hates C++, and predicting that Go (but not Rust) will eventually replace C -- if not a new language like Cx.
Wow, Infoworld (Score:2)
C++ seems to now have enough momentum that I can actually use new features. It wasn't until 2003-4 that C99 support was sufficiently widespread that people didn't complain if I used C99 features, and C++ had a huge ABI change around that time in the *NIX world that broke everything. These days, I'm already using C++17 features (finally, the language has decent support for multiple return values and tagged
Re: (Score:3)
Re: (Score:2, Insightful)
Not only C++. With WebAssembly one can have a python, swift or go interpreter in the browser. WebAssembly will probably start reducing market share for Javascript which to me is a good thing as I've wasted uncountable hours nitpicking small syntax javascript errors that were causing problems.
I still think C++ has lots of flaws that are totally unnecessary. For example designers insist on not making syntatical breaking changes in C++ which to me is senseless. They could come up with a common bytecode as swif
It All Sucks (Score:1)
For the last 30 years programming languages have been stuck in spin cycle.
In the late 80's early 90's, "4th generation" languages were eagerly anticipated, saving people from having to code the same shit over and over again Those that DID show up were a great disappointment because they were pretty much limited to building forms for data entry and reporting for databases. Reporting packages have made great headway, but they are all still rather obtuse.
We are still spinning away with countless 3gls coming an
Re: (Score:3)
Re: (Score:2)
True, but it's still the equivalent of stick building a house with hammer and nails. They all are.
The only thing that changes is the shape of the hammer and length of the nails.
Re: (Score:3)
I would argue this would be C++'s strength for WebAssembly. Unlike with the Javascript, or even HTML s
Re: (Score:2)
Re: (Score:2)
Alright, imagine that you are a company that has invested billions of dollars into billions of lines of code. And now someone wants you to rewrite all that because all of a sudden the syntax is different to conform to some random notion of "looking neater". Not gonna happen... C++ has a specific niche: it lets you write performant software on a large scale, and it guarantees that your investment will not be worthless overnight. There are plenty of places in the world where languages that change on a yearly
Re: (Score:2)
No, this would not make C++ developers happy.
There is not going to be a common bytecode. Most C++ programs are compiled to native code, for performance purposes. C++ is used for systems and embedded programming, and bytecode isn't suitable for either of those.
Breaking source compatibility isn't going to happen, even with binary compatibility. Nobody's going to stand for having three incompatible versions with their own compilers. If you were in the industry, you'd realize that you don't write a pro
Re: Wow, Infoworld (Score:1)
How are you using C++17?
There is still a large amount of bugs in all major compilers.
Re: (Score:2)
Re: (Score:2)
Just search the gcc bugzilla.
Why would clang's bugs be in the gcc bugzilla?
Re: Wow, Infoworld (Score:1)
Sorry I misread, I thought he meant gcc or clang.
Clang problems are typically more focused in the middle or backend.
Re: (Score:3)
Make a list of major tech companies that have a significant investment in C++ code. Make a list of companies that are gcc contributors and companies that are clang contributors. You'll find a huge intersection between the first and third lists and a much smaller intersection between the first and second. You'll also find that most of the companies in the second list are also in the third.
I had it summed up to me quite well by a friend at ARM. He said that their customers basically come in two categor
Re: (Score:2)
In clang 5, I've used constructor type deduction.
Re: (Score:2)
Back in the day I remember using boost::variant for tagged unions and creating DECLARE_ASSIGN_N macros for every possible N to do pattern matching on a function that returns a tuple. Ah, the good old times.
Re: (Score:2)
Bugger! I haven't got round to learning 14 yet!
Re: (Score:2)
Microsoft sounds so innovative (Score:1)
Alas, 5 minutes with a fresh Windows 10 installation will prove otherwise. What trash.
Re: Microsoft sounds so innovative (Score:5, Informative)
What do you like about Windows 10? I had to set it up for my mother and, while I've done some work with MSR and am quite impressed with some of the technology that they've put into it, the UI is terrible. A few examples:
It felt like GNOME or KDE back in the 1.x or pre-1 days, when there was no consistency and lots of known-bad UI decisions everywhere.
Re: (Score:2)
It's 2017, it's not hard not to use Windows anymore.
Re: (Score:2)
Consistency is one of the hallmarks of a good UI. Windows 10 fails spectacularly.
Let's not (entirely) blame Microsoft for that, though. In the old days, you had a set of common controls that people generally used because they were convenient and everybody knew what they looked like and did. And then came the web, and mobile phones, and suddenly everybody wanted to build their own set of controls that looked and acted completely different from everything else. User interface design is now driven by how cool it looks, rather than functionality. And sure, it is less boring - but I do miss
Re: (Score:2)
As an example, I challenge any normal user to find screen saver settings in windows 10 without using start/search. It is actually difficult to find.
Re: (Score:2)
As an example, I challenge any normal user to find screen saver settings in windows 10 without using start/search. It is actually difficult to find.
I think it was an intentional decision to de-emphasize screen savers, which really shouldn't be a thing anymore.
Re: (Score:2)
Re: (Score:2)
What do you like about Windows 10?
I like that it boots fast, has a clean efficient UI, and has a recent version of PowerShell installed so I can automate whatever I need.
I had to set it up for my mother and, while I've done some work with MSR and am quite impressed with some of the technology that they've put into it, the UI is terrible. A few examples:
Okay. Never noticed an abundance of different progress indicators but I'll try to pay more attention. You are probably right, as far as I am concerned, though I don't think that's a major deal.
There is a new 'settings' app, which has a different look and feel to control panel. Settings are either there, or in the control panel. You need to check both to discover which (try configuring a trackpad: the settings are split between the two).
They have added a number of buttons that look like file icons, but expect a single click (because they're buttons, not file icons) and will trigger some action twice if you double click on them.
If it's in a file browser or your desktop, double-click. Otherwise, single. This isn't new, though I understand the confusion, as MS never has done a good job of explaining this. Laun
Re: (Score:2)
So like MATE, LXDE and XFCE now? I swear things are progressing backwards.
Re:Microsoft sounds so innovative (Score:5, Interesting)
It may be an unpopular opinion, but I actually like Enterprise. I have it at work and uh, found a box that fell off of a truck.
The difference between Pro and Enterprise is night and day. For some reason "Pro" still has crap like Candy Crush in the menu. Enterprise comes bare bones. The released "Professional" is a slap in the face to professionals that just want a desktop OS.
In a house with Ubuntu LTS, FreeBSD, and MacOS X I actually like Windows 10 Enterprise. It's like they actually designed it for *drum roll* desktop users. I don't see how they can claim "Pro" is targeted towards business users. Random junk games showing up in the Menu is not something I want on a business desktop. That should have stopped at Home.
I printed out a keyboard shortcut cheat sheet and can do almost everything without the mouse. If you ignore the close and minimize widgets I can get by using Windows 10 like Awesome WM. UEFI boot doesn't feel tacked on. I don't go through driver hell every time I reinstall, it actually manages to find them or have them installed. (Windows 7 didn't have basic Intel gigabit ethernet drivers...).
I put off upgrading for so long because of the flaming trash heap that was Windows 10 Home on my wife's computer. I also know quite a few others that did the same. Make the installer ask some basic computer questions ("What is an IP address") and give professional users a professional desktop and it might not have the reputation it does.
Re: (Score:3)
As far as I can see, Windows 10 Enterprise is a very different product to the Home/Pro editions. Windows 10 seems to have a few modest technical improvements under the hood, but the things that have stopped us moving to it are the usual objections to telemetry, forced updates, adware, etc. The Enterprise version seems to have useful controls over those, which isn't surprising since clearly no large corporate IT department is going to surrender control of their essential systems to Microsoft. It's just surpr
Re: (Score:3)
How can something that only lives in a single browser make programners' lives easier?
I'm not web developer, but from my limited experiments with TypeScript, it looked like it transpiles into something which was running under IE, Edge, Firefox and Chrome (tried only these). Are you saying that some more advanced features of TypeScript work only in Edge? Or only in IE?
Re: (Score:3)
Typescript transpiles to Javascript. Standard Javascript, in several target versions. The 90's called and they want their worldview back.
Re: (Score:2)
Re: (Score:2)
Your ignorance is showing. Please move back to 1995 where your world view jives with reality.
It's open source you ignorant moron.
How would they accomplish this. Typescript compiles to Javascript, and the typescript compiler is open source. Were you born retarded or did it dev
Re: (Score:2)
Err, TypeScript is a compiler. It compiles to JavaScript. JavaScript runs in every browser.
Re: (Score:2)
How can someone who's been living in a single cave talk about something he's completely clueless about? Are you retarded due to self inflicted head wounds or were you dropped on your head as a baby?
You forgot WebAssembly! (Score:3)
Perhaps the most important change in 2017 was the deployment of WebAssembly. It's the most important because it's the final nail in the coffin for readable JavaScript. Already it's being exploited and wasting everyone's computing power to scrape up cryptopennies. JavaScript as we know it is now over and the age of exploitation is in motion.
Congratulations everyone, JavaScript is now a complete noose around your neck just waiting to be pulled! ;)
Too Bad APK is a retard as is his work (Score:1)
Too bad Alexander Peter Kowalski is a retard and his work sucks.
It functions like a bad AV scanner that only recognized viruses based off of file names.
It is always behind and and offers reactive security.
It is easily circumvented as in a small child could figure out how to do so in a few minutes.
Retard APK makes grandiose claims like hosts stops inbound connections.
He also like to claim the Chines copied him.
When called out on his BS he demands other repeatedly disprove his claims, which they do, and like
Re: (Score:2)
Already it's being exploited and wasting everyone's computing power to scrape up cryptopennies
By default uBlock Origin [mozilla.org] includes a block list to protect against resource abusing scripts, such as coin mining scripts. And, if you think the default block list is not enough, you can add additional block lists to uBlock Origin like the NoCoin [github.com] list. So protect yourself with uBlock Origin and browse happy.
Re: (Score:2)
If you have to keep an updated list of locations to block then it means it's a successful tactic and is earning them revenue.
See, my problem isn't with cryptomining scripts, it's with all scripts because any of them can be malicious.
Re: (Score:2)
The problem is not only with JavaScript but also with WebAssembly. What they have in common is that a computer program chosen by the operator of a website that you are visiting executes on your computer before you have an opportunity to audit the program (or hire someone to do so). Operators can and habitually do collude to use this browser capability to run scripts that track users, exfiltrating information about each viewer's identity.
Re: (Score:2)
Since you feel so strongly about this subject, and you're posting on slashdot, I'm sure you (or someone you hired?) have audited the 29k lines of code at https://a.fsdn.com/sd/all.js [fsdn.com] which get loaded on this very page (well, actually https://a.fsdn.com/sd/all-minified.js [fsdn.com] gets loaded, but I'm dangerously assuming that the former is the original version of the latter). So did you find anything suspicious? When was the last time those files got updated?
If you haven't actually inspected that JavaScript file, wo
Can still post to /. without JS (Score:2)
The difference is that one can participate in Slashdot with script* off. A lot of websites are structured in such a way as to block people from even viewing them without running script. Some of it is accidental, especially for rich web applications where progressive enhancement would prove impractical. (Anti-script hardliners would prefer that operators of such services make a native client application available to the public in source code form.) But lately, other dependencies on script are deliberate in a
Re: (Score:2)
it's with all scripts because any of them can be malicious
Then NoScript [mozilla.org] or uMatrix [mozilla.org] can help you. uBlock Origin's advanced mode is also very powerful if you want to stick with the one add-on (which is better for the sake of simplicity).
Re: (Score:2)
You're missing the point, this about more than just advanced users.
Re: (Score:2)
Re: (Score:2)
Already it's being exploited and wasting everyone's computing power to scrape up cryptopennies
By default uBlock Origin [mozilla.org] includes a block list to protect against resource abusing scripts, such as coin mining scripts. And, if you think the default block list is not enough, you can add additional block lists to uBlock Origin like the NoCoin [github.com] list. So protect yourself with uBlock Origin and browse happy.
Ah yes, because proxies don't exist in 2017...
Re:You forgot WebAssembly! (Score:4, Insightful)
Clearly you haven't been reading minified JavaScript recently. JavaScript hasn't been readable for years, and the world didn't end.
I'd love to hear how you "know it" today, because the JavaScript served by most websites might as well have been a big binary blob.
Downthread you mention:
Surely that is a completely separate concern? Non-advanced users have never been able to read JavaScript. And when WebAssembly becomes more popular, the non-advanced users won't be able to read that, too. So from their perspective nothing changes.
Re: (Score:2)
Clearly you haven't been reading minified JavaScript recently.
That's a fair point but you can still read it with a bit of effort. I've done it.
JavaScript hasn't been readable for years, and the world didn't end.
it did for me. :P
Surely that is a completely separate concern? Non-advanced users have never been able to read JavaScript. And when WebAssembly becomes more popular, the non-advanced users won't be able to read that, too. So from their perspective nothing changes.
I'm speaking to the point that they will be exploited for their processing power by WebAssembly. It wasn't until recently that it became a real option.
Re: (Score:3)
If you can minimized JavaScript I'm sure you can learn to read WebAssembly (with a bit of effort).
If it's the processing power you fear, I'm sure it's trivial for browsers to slow down WebAssembly execution so it matches that of comparable JavaScript code. If cryptocoin mining through WebAssembly/JavaScript becomes so widespread that average users really star
Q# is kinda cool (Score:2)
Gotta love it when language examples involve notations like |0
Re: (Score:2)
Gotta love it when language examples involve notations like |0
Looks like your last character quantum teleported off somewhere. I suspect the notation is meant to be |0>
Re: (Score:2)
I suspect the notation is meant to be |0>
Programming with emoticons . . . and interesting concept . . . kinda sorta like APL, with its cockamamie characters.
Re: (Score:2)
cixl, not cx (Score:2)
Re: (Score:2)
It looks moderately interesting, but I'm not interested in a language that doesn't allow concurrent execution, and I didn't notice anything about how you handle Unicode. (utf8 is fine, even utf32 internally, but forget about utf16...except where required by foreign function calls.)
The "scan the stack backwards" might solve the problem that caused polish notation to be disliked, but the explanation needs to be clearer.
Also, you need to do something to make the name more searchable (though it sure is an impr
TypeScript (Score:2)
TypeScript was not the only JavaScript alternative making waves this year
Straight from the wikipedia page:
TypeScript is a free and open-source programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript
I stopped reading after that because the author is not qualified to discuss the subject matter domain accurately. TypeScript has also been around at least since 2014 because I was using it back then.
2017, like 2016 (Score:1)
C++ is becoming awesome (Score:2)
C++17 was mostly just an incremental improvement over C++14, which was an incremental improvement over C++11, and the most-anticipated feature -- Concepts -- didn't quite make it into 17. Still, the work of the committee is gradually evolving C++ into a much nicer language. Modern C++ code written according to the C++ core guidelines [github.com] is simpler, clearer, safer, more maintainable -- and often more efficient.
Unfortunately, all of the old language features that are no longer recommended are still present, so
Re: (Score:2)
C++ is becoming obscenely complex, and hence a pain to manage and a pain to find bugs and a pain to avoid creating more bugs when adding code
Re: (Score:2)
C++ is becoming obscenely complex, and hence a pain to manage and a pain to find bugs and a pain to avoid creating more bugs when adding code
You clearly have not actually worked with modern C++.
Re: (Score:2)
oh yes I most certainly have. the modern is worse than the old for making a maze
Re: (Score:2)
I would have said "unwieldy". But it already was unwieldy.
It's probably true that if I invested sufficient time C++ would be a complete language. But even were I an expert it would take me a long time to program anything, because there are too many fiddly details.
Let me modify that. C++ is certainly a complete language, but so is C and so is assembler. None of them make it easy to turn well defined ideas into code. I prefer C++ over C because of a very few choices made long ago, e.g. the inclusion of r
Re: (Score:2)
I might not be an expert (depending on your definition), but I'm a competent C++ programmer. It doesn't take me a long time to program anything, partly because I know how to avoid dealing with the fiddly details. I find it fairly easy to convert ideas to code (depending on the ideas, anyway).
C++ is far more expressive than C. Technically, anything you can do in C++ you can do in C, but in some cases you'll need painstaking attention to detail and lots of more or less opaque code.
If you're looking at
great (Score:1)