I'm partial to Java for a lot of reasons. That aside I still think my criticisms of JS syntax, NPM, and debugging are valid. Let me explain a bit more though.
The biggest problem with JS syntax is not dynamic typing, it's a startling lack of consistency. For example .ForEach vs "for in" vs "for as" vs manually looping over properties. That's at least 4 loop types made for looping over object lists/properties. Checking for undefined is convoluted, the crockerford privacy pattern is convoluted, Iffy syntax is convoluted, function scoped variables are convoluted, using Arrays.prototype and similar are convoluted because you cant trust built in functions to work properly. Even arrays are convoluted because there's a marked distinction between an array vs "array like" objects and certain things work on one but not the other. And don't get me started with double equals. I could probably go on for maybe 5-10 pages given some time, but I think that's enough of a point.
I have read several JavaScript books cover to cover multiple times , and honestly half the books are "patterns" aka workarounds for things that usually "just work" in other languages. Yeah I understand they're working to fix this stuff but some of the cruft will remain with us for a long time. I haven't used a single other language with as many gotchas as Javascript, not even Perl.
NPM is a mess and we seem to agree on that. I happen to have published packages on both C# and Java, and I'll say that especially for Java, the bar for "acceptable" is much higher. This is kicking a hornets nest but... I think a lot of the reason the quality of NPM packages is so low is because the average JS developer has a lot less experience. Still, some of the problem is the design of NPM itself. They need to ditch their module system for the new standard yesterday and they need to make it less trivial to publish a package. Both C# and Java scan your manifest to make sure you meet some minimum standards, such as a sane namespace.
As for debugging, it might be a lot better now, but Chrome is still seriously underpowered as a debugger compared to a real IDE. It's main purpose is a web browser so this isn't too surprising. Java or C#(my two mainstays) have full debuggers built into the runtime plus tons of extras like profilers and processing/comparing process dumps and memory leak finding systems and all sorts of crap that becomes useful when you've got nasty bugs. JavaScript is still maybe half a decade behind on tooling, debugging, and IDE support.
You're probably right that Node is great for hacking stuff together quicker than Java, but I don't think the language and tools around it are mature enough to support large applications expected to last a decade or more.
To me Node feels like Python but with a much better performing runtime, and IMO should be treated as such. Good for quick stuff and "glue" applications.
My angst with the JS community comes from their collective immaturity(or maybe it's just the hype train, or maybe both). Everything new in JS is the best thing ever and makes front page HN, even if it's existed forever. I remember a post about the Closure compiler in JS making the front page a few months back. The Closure compiler has existed for what... Ten years? Is it really that big a deal that google ran a JS codegen from the native Closure source? The JS community thinks so apparently.
That and the JS community pooping on C#/Java because they have a big runtime when the runtime for JS is also huge. You need an entire web browser just to debug it!
Anyways yeah JS is really approachable because you don't need to install anything to use it and it's being taught everywhere as a first language. But its badly designed and the ecosystem around it is busy but of largely low quality.
It's not the same. Those compile to the bytecode but not through generating code. The "transpilers" for JavaScript are glorified code generators, they don't perform most of work that true compilers do.
Namely optimization and dead code elimination. The only true compiler for JS at the moment is google's Closure.
Scala and the .NET family languages go straight from code to bytecode with their own compiler frontends
Turns out knowing more than one language isn't a rare or sought after skill. In Europe maybe 40% of the population knows multiple languages fluently. Perhaps a third of these write well enough to translate.
You're not going to get paid well for a job that close to 15% of the population can do with no training
I may be overly paranoid, but the majority of what Fuscia is trying to accomplish is extremely bad for open platforms.
The outcome of moving drivers to user space will be proliferation of binary blobs and black box drivers. If you think binary GPU drivers are bad now, imagine an "open source" OS where every single driver is a binary blob. It will become impossible to run Fuscia devices on any other operating system because you have no drivers, sealing off the Android platform permanently.
I disagree. There's always a possibility that someone else already knows about it and isn't disclosing it. Waiting to disclose will naturally lead a company to take longer to fix the issue.
Immediately disclosing allows customers to take action to protect themselves in case someone else is already exploiting the bug. Waiting to disclose is being peddled by the corporate agenda as "the ethical thing to do" because it makes vendors look bad.
Here's typically what happens. You disclose a bug, company fixes it for next release and puts a footnote in the release notes. Nobody ever looks to see if it was exploited because the instinct is to bury it. Customers aren't widely notified and the seriousness is downplayed because "the bug is already fixed" . In the meantime the software was vulnerable for up to three months when it didn't have to be.
If you disclose immediately there's a temporary panic as everyone does mitigating measures (which is how it should always be done!!!). the company is under tremendous pressure to out a patch in a matter of days which they usually do. Then you get yelled at by the company for making them look bad and "putting their customers at risk" even though the customers are provably safer because they were only vulnerable for a few hours
Ambiguous messages do not imply slang. Plenty of words have multiple meanings in normal and formal English. It's a much worse problem in tonal languages like Chinese. Tell me how you could grammatically correct this without understanding meaning https://en.m.wikipedia.org/wiki/Lion-Eating_Poet_in_the_Ston...
Strong AI isn't a buzzword either, it's been in use for as long as I can remember. Maybe you would be able to understand my Grammer better if I said super human general intelligence and wasted a bunch of space in the process.
I don't think you read my comment? You seem to imply that the corrections would be unambiguous while my point was that some errors are uncorrectable without understanding meaning.
The average American commits ~ three felonies a day by accident. The combination of district,city, county, state, country, and international law that applies to you would probably take a few hundred lifetimes to read.
Let's say, one day you write an article critical of your cities parking ticket policies. The police chief doesn't like it, he implemented the program.
Article is a bit short but I like the premise. Balsamiq is excellent, I guess this explains why.
The happiest people I've known have been lifestyle business owners. Investors act like it's a sin to create a business that consistently makes money and stays small.
Vector seems to be some kind of hybrid entity, presumably designed to soak up ML talent at the University that revived AI research while also soaking up taxpayer dollars for Google.
Added bonus of making Trump look bad by doing cool stuff in USA's backyard instead of the valley.
I have a feeling this is one of those places where ML will not be useful until we have strong AI.
Certain grammatical errors are impossible to fix unless you understand the overall meaning of the text. Sometimes this meaning is embedded over many paragraphs. Errors involving incorrect word usage are unsolvable when words have more than one meaning and you don't comprehend the subject at hand.
Fuchsia sounds awesome. Allowing user space processes to do more of their own work frees up the kernel from providing standardized interfaces to hardware.
This makes it significantly easier to build a closed platform with unbreakable barriers between processes, and this is a great thing in terms of security and fine grained access controls for each process. Individual process isolation is extremely important for most of todays use cases where only a single user is logged into each system at one time and most running code is trusted.
In practice this means you can prevent user space processes from accessing anything you don't want them to touch while still giving them substantial low level access. This will be a boon with device makers because it allows them to preventing a users apps from compromising the carrier experience. Companies like Google will also have less concern about users installing malware like ad blockers. The movie and music industry will also greatly appreciate an operating system finally designed for 21st century IP protection. This will even be embraced by hardware manufacturers since they no longer need to provide open source drivers for their hardware that could be ported to other platforms. Overall a win-win for everybody.
In the end we can trust that this will result in a better user experience with more secure apps and devices.
Did anyone hear the whispers of Xooglers a few years back talking about "big changes" coming to Android that were absolutely horrible for users and done to placate industry? Hmmmm... This Fuscia thing looks pretty suspicious.
Robinhood's Gold tier, which is a different name for buying on margin, has potentially dire implications for the health of the economy....
The great depression was largely the result of massive numbers of everyman speculators entering the markets with reckless amounts of leverage. Robinhood vastly lowers the barrier for gambling with money you don't own. There's a reason you can't buy lottery tickets with credit cards.
This is great. I've got some relatives that love this garbage and there's things in here I hadn't heard about. I can picture the author being totally surrounded by this shit :)
The difference with software is that I don't need to buy the library to use the computer. Not sure which FPGA's you're using since all the big players force you to use their shitty tools and charge massive license fees for the privilege
The biggest problem with JS syntax is not dynamic typing, it's a startling lack of consistency. For example .ForEach vs "for in" vs "for as" vs manually looping over properties. That's at least 4 loop types made for looping over object lists/properties. Checking for undefined is convoluted, the crockerford privacy pattern is convoluted, Iffy syntax is convoluted, function scoped variables are convoluted, using Arrays.prototype and similar are convoluted because you cant trust built in functions to work properly. Even arrays are convoluted because there's a marked distinction between an array vs "array like" objects and certain things work on one but not the other. And don't get me started with double equals. I could probably go on for maybe 5-10 pages given some time, but I think that's enough of a point.
I have read several JavaScript books cover to cover multiple times , and honestly half the books are "patterns" aka workarounds for things that usually "just work" in other languages. Yeah I understand they're working to fix this stuff but some of the cruft will remain with us for a long time. I haven't used a single other language with as many gotchas as Javascript, not even Perl.
NPM is a mess and we seem to agree on that. I happen to have published packages on both C# and Java, and I'll say that especially for Java, the bar for "acceptable" is much higher. This is kicking a hornets nest but... I think a lot of the reason the quality of NPM packages is so low is because the average JS developer has a lot less experience. Still, some of the problem is the design of NPM itself. They need to ditch their module system for the new standard yesterday and they need to make it less trivial to publish a package. Both C# and Java scan your manifest to make sure you meet some minimum standards, such as a sane namespace.
As for debugging, it might be a lot better now, but Chrome is still seriously underpowered as a debugger compared to a real IDE. It's main purpose is a web browser so this isn't too surprising. Java or C#(my two mainstays) have full debuggers built into the runtime plus tons of extras like profilers and processing/comparing process dumps and memory leak finding systems and all sorts of crap that becomes useful when you've got nasty bugs. JavaScript is still maybe half a decade behind on tooling, debugging, and IDE support.
You're probably right that Node is great for hacking stuff together quicker than Java, but I don't think the language and tools around it are mature enough to support large applications expected to last a decade or more.
To me Node feels like Python but with a much better performing runtime, and IMO should be treated as such. Good for quick stuff and "glue" applications.
My angst with the JS community comes from their collective immaturity(or maybe it's just the hype train, or maybe both). Everything new in JS is the best thing ever and makes front page HN, even if it's existed forever. I remember a post about the Closure compiler in JS making the front page a few months back. The Closure compiler has existed for what... Ten years? Is it really that big a deal that google ran a JS codegen from the native Closure source? The JS community thinks so apparently.
That and the JS community pooping on C#/Java because they have a big runtime when the runtime for JS is also huge. You need an entire web browser just to debug it!
Anyways yeah JS is really approachable because you don't need to install anything to use it and it's being taught everywhere as a first language. But its badly designed and the ecosystem around it is busy but of largely low quality.