5 ms·
"It’s really about taking the best ideas from where we can get them and assembling them together." ~ Chris Lattner I think this is the root of my dislike of Sw
by sandbags 8y ago
"It’s really about taking the best ideas from where we can get them and assembling them together." ~ Chris Lattner
I think this is the root of my dislike of Swift. "Assembling" together the best ideas, which may only be 'best' within a specific context does not suggest the kind of design principles I am looking for in a language.
I was looking for a quote and it seems it was Antoine de Saint Exupéry who said something like "It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove."
So I contrast Lattner/Swift with Hickey/Clojure: a small set of coherent design choices that lead to a language that is simple but deep. It's by no means all things to all women and that's a good thing.
- sandbags 8y agoI should add I am not trying to make a comparison between Swift & Clojure but between what I see as a fundamental difference in the design principles that lead to those languages and why they might matter.
- wild_preference 8y agoClojure clearly assembles various ideas as well, so your criticism is only effectively leveled at a quote from Lattner which feels very superficial. Surely every language designer including Hickey thinks they are assembling the best set of features for their goals.
- sandbags 8y agoI guess I am struggling to get across what I mean. I see Hickey as having a specific, focused, goal about enabling simplicity (given his specific meaning for that word) and yes I totally agree that every designer, including Hickey, does as you say. What I was trying to get across was that I don’t see the guiding principle that guide the selection of those “best” features to include so much as “there’s this great stuff” that we must include. Does that make more sense? Or should I put down my shovel?
- bgongfu 8y agoI get what you're saying, and I get the same feeling from most modern languages. They lack conceptual integrity. It's sort of spreading like a virus, even C++ fell into the same trap lately. Whole system design is difficult, really difficult, tear your hair out difficult. Accumulating features is a Sunday walk in the park in comparison; until the pile tips over, that is.
- hyperpallium 8y agoJava also did this ("Java is a blue colar language"†) and was wildly successful. You might not like it either. † http://www.win.tue.nl/~evink/education/avp/pdf/feel-of-java.pdf http://www.win.tue.nl/~evink/education/avp/pdf/feel-of-java....
- willtim 8y agoThey didn't include everything, far from it. For example, lambdas were deliberately left out, despite objections from Guy Steele. Parametric polymorphism (generics) was also well known in academia at the time, since the 70's, but Gosling claimed to have not understood it.
- mikkelam 8y agoThe concept was specifically to include the best ideas, not everything
- sandbags 8y agoI also think it’s interest to listen to Hickeys rationale for why things were not included in Clojure or why things are how they are. I have found his talks on language design to be very clear and rational. He appears to have specific aims and seems unafraid to make the necessary compromises to achieve them.
- apple4ever 8y agoI think you hit the root of my dislike as well. I didn’t see a reason to design a new language when Objective-C could be improved (for those that think it needs improved).
- ckok 8y agoBest is quite subjective. Non nullable default types, defer, patterns are great ideas. Virtual by default, associated protocols instead of generic protocol, Exception handling designed based on how objc passes nserror, Generic instantiation is done at runtime, not by the compiler, so field access and even defining locals involves needless math, All things with a lot better alternatives at the time swift was designed.