4 ms·
"All" languages used for the web have those downsides? This is part of why Go culture scares me a bit. You seem to be overlooking the huge amounts of software
by sievebrain 11y ago
"All" languages used for the web have those downsides?
This is part of why Go culture scares me a bit. You seem to be overlooking the huge amounts of software written in .NET and on the JVM, none of which suffers from the problems you just outlined: there are great IDEs, decent type systems, good interactive debuggers, strong standard libraries, reasonable package management etc.
This mental blind spot towards the tools and practices that a massive part of the software industry has been using for years is really odd.
- gizmo 11y agoI deliberately didn't mention specific programming languages because I knew that would lead to bickering about the relative merits of Python vs Java vs .NET vs Clojure, which would just distract from the greater point. Your curious assertion that I'm somehow part of "Go culture" only confirms this. I think we can do a lot better than .NET or Java. .NET isn't even cross platform and Java has a lot of legacy cruft. Not to mention both platforms are pretty bloated and not even designed with the modern web in mind.
- sakopov 11y agoSo much bias in this thread in general. Have you missed the news on .Net Core?
- talles 11y agoA sample from the newer stuff in the .NET world: http://nancyfx.org http://nancyfx.org How modern is that for you?
- gizmo 11y agoSame old same old? If you think nancyfx represents a leap forward I don't know what to say.
- sievebrain 11y agoIt's not clear what you would accept as a good language for the web. Could you elaborate?
- talles 11y agoComparing to the old ASP.NET web sites with "view states" and "user controls"? Sounds like leaving behind the "legacy cruft" you talk about to me.
- cballard 11y ago"Decent" is being very kind to any language that has a type system where every reference type is implicitly a Maybe (okay, Scala exists).
- sievebrain 11y agoGo and Scala also allow every pointer to be null, no? Scala has an option type, but so does Java 8. Defining one in C# is easy. But there is Ceylon, Kotlin, Clojure, whatever. Kotlin uses ? suffixes to define if something is optional. And at least the code interops nicely. You can inherit a huge Java codebase and slowly convert the code over. No such luck with Go. Unless you're converting into C!
- cballard 11y agoC# and Java optionals aren't very useful, since they would be reference types themselves, and thus could be null! I would submit Rust and Swift as "decent" type systems, if Haskell is the standard for "good". They do nullability correctly, but lack HKTs.
- jdmichal 11y agoC# has non-nullable value types via the `struct` keyword. And C# in fact already has a defined optional type to handle this; it's called `Nullable`. [0] [0] https://msdn.microsoft.com/en-us/library/b3h38hb0%28v=vs.110%29.aspx https://msdn.microsoft.com/en-us/library/b3h38hb0%28v=vs.110...
- krotton 11y agoIn Scala, Option[Whatever] may also be null. The difference is that it's considered "some Java compatibility leftover" and never exploited by any sane piece of code.
- zanny 11y agoJava and C# have a first class ideology (object oriented) that does not align well with functional web servers which is how almost everyone writes theirs nowadays. These languages are getting better about it, but they are tacking on functional programming to a language that traditionally was strictly OO, and in the same way C++ has a lot of edge case behavior in being "OO tacked onto imperative" these languages suffer similarly.
- titzer 11y agoBoth of those languages have migrated to more functional features with closures and lambdas. In fact, it seems like the entire landscape has tilted a bit toward the functional side in the last ~5 years.
- pjmlp 11y agoLast time I checked there was plenty of FP choice on JVM and .NET stacks.
- nobullet 11y agoThat's not a true statement about modern C# and Java.