If a guy writes an entire book and you don't want to read it because he made a spelling mistake, then don't.
75 karma · joined March 25, 2016
If a guy writes an entire book and you don't want to read it because he made a spelling mistake, then don't.
I have experience teaching kids Lua, and with the right metaphors and a little bit of backtracking and foundation-building, even complicated ideas like emulating classes and single inheritance can be understood and even implemented by young students.
If I taught them lua reserved keywords, and a couple little math tricks here and there, they usually would all bunch up everything into a couple huge functions, and their game would (sort-of) work but be impossible to reason about, and very painful to extend.
Introducing objects as a way to represent things that they want the game to do (draw things, shoot things, eat things, etc), it becomes clear to them that there is merit in structuring programs with objects beyond "shrugger says to do it like this!"
OOP on its own doesn't make much sense. You can't teach someone to drive stick shift if they don't know what a car is. Maybe you could, but that's probably even worse.
I don't use Facebook products because I don't want to give Zuckerberg my money. I don't use Apple because I don't want to give money to a company whose original figurehead thought that wearing Mom-jeans to press conferences was in any way professional.
The point is that these companies, however monopolistic they might seem to you (and me), are driving innovation several orders of magnitude faster and more efficiently than organizations like Mozilla or GNU. A company exists to make money. That's an ethos that I personally find more consistent and more comfortable to think about than "we should make software that EVERYONE can use" and it's a safer bet as well, since these companies will go out of business if they don't make money whereas GNU/Mozilla/et al will vomit out software that sorta works for a million years.
Also, machine learning is not about predicting the future anyways, it's almost exactly the opposite. Understanding what people have done is much more actionable than trying to figure out what people are GOING to do, because we are very fickle, complex, imaginative creatures. Could you have predicted that I'd write this comment? No. Could a program that has read every previous comment that I've ever made predict this comment? No. Could it predict that I might write a comment of a similar nature? Sure. If we were playing poker and I thought that you were going to fold, that's much different from some algorithm that was CERTAIN you were going to fold.
Scala Native is not very far along compared to Scala.js, but it is actively being improved, and is considered an official extension. Additionally, Dotty will bring huge improvements for JVM scala.
I am not super happy with JVM most days, but I'd far and away prefer to be chained to JVM than BEAM. I mean, it's not even a question at this point, considering the billions of dollars spent developing JVM and the work of the brightest minds of several generations. Joe is a cool guy and all, but Erlang is objectively a niche platform compared to JVM.
So yeah, no.
Reading about Elixir is cool sometimes, but then I look at Dotty, and I feel confident that I made the correct choice.
I've also been keeping an eye on Crystal (statically typed Ruby-esque language, LLVM), but they aren't making great PLT choices so far. Maybe they'll get it together later. Scala-Native will blow it out of the water most likely anyways.
Sort of the opposite of losing statically typed programming, but I've really enjoyed the journey and it's improved my work a lot more than I thought it would. I know Ruby pretty well and I used to feel really dumb all the time when things would break, and it took some time for me to realize that it was a language problem. Looking back and reading some of the Ruby that I ported, it was impossible to reason about, and very difficult to make guarantees for. Nothing was solid at all, and runtime errors could hypotehtically stop the show at any time. With Scala there's a much sharper baseline of what will definitely work or not work.
Types make a LOT of things so much easier, in exchange for making a few things SLIGHTLY more tedious. After doing it, I'd make that trade ten more times if I had to.
Ethereum is a bad idea and people are too embarrassed to admit it. I get it. However, turning around and shoehorning that sentiment into "They don't understand central banking" is just foolish and highlights the sort of headstrong obliviousness that has essentially springboarded DAO into the spotlight to begin with.
Smart contracts aren't good for stupid users. Someone outsmarted a big group, now they're having a fit because all of their money is going to leave, and rather than walk away from the poker table with their head hung low, they've decided to just rob the dealer and try for heisting the vault while they're at it.
And then they have the gall to say "Oh, you just dont understand the purpose of central banking" as they oppose a system that they put in place to benefit themselves, by themselves.
I think you might be blurring the lines between writing something in a socratic dialogue versus writing technical documentation. Dijkstra, obviously often is writing in the former style and so there's plenty of room for his personality in the text and it doesn't take away from the overall quality and cohesiveness of the text.
I feel like turning Scala into a cross-platform language is the best idea possible. I'd love to see Scala someday be able to just dump out WebAssembly, or JVM bytecode, or LLVM IR, or whatever the next "hip" format is, while keeping the language the same.
I also find it shocking how hard people are pushing Typescript when Scala.js exists. Why would you ever subject yourself to TS?!?!
I work with dozens of peaceful, bright people, on projects that are responsible for keeping people safe without violence or conflict or any nonsense like that. Many of the people whom I work with wouldn't swat a fly, so I don't really concern myself with the thoughts of people who have no clue what they're talking about, like commenters on HN who google "depart of defense not really about defense???" and then think they've stumped me. Honestly.
Cool.
Currently, Scala-Native is working on off-JVM Scala, Scala.js is already plenty capable of compiling to efficient JS, and when wasm lands, it'll probably manage that rather easily.
Elm is a neat language, but I think it sort of presents too wide a divide. I have the same problem with Elm as I do with Typescript, Dart, and all of the other languages that recognize JS is a shit language, but just compile to it anyways.
Scala is a VERY well-designed language, and FP/OOP isn't nearly as polarizing as it might seem. I'd recommend LearnXinY Scala, read a little bit and you might see how natural it actually is (excluding the obnoxious syntax for certain things)
But yeah, JS has always been the crucial problem that needs to be solved. *.js is never going to solve it.
"C++ programmers find it difficult." Says who? I doubt someone who slogged through enough pain to learn C++ would be fazed by the weird parts of Rust.
The Rust language is not at all a significant barrier to its adoption. I think that the fact that Mozilla refuses to standardize its development and has a history of political-correctness inclusivity is a bigger barrier to its adoption. Especially given that C++ has been around for so long already, is always (very slowly) improving, and is already standardized. It's not a great language in the sense that it's FUN to program in, but neither is Rust, and even if it was, it's not a good enough reason to throw away c++.
I'm not so big on the whole religion thing, but whatever. They've a right to think that.
Google sought ECMA standardization when they took on Dart. Go language has an official specification, so someone could hypothetically re-implement it if they wanted to, and remain compatible Go projects.
Mozilla only wants Mozilla to be involved with Rust. They want everybody to use it in their systems, and have no input on where the language should go.
which I think most people interested in Elm already knew.