4 ms·
I have followed this language passively for ~1.5 years. I think it's revolutionary, and the big barrier for my adoption is the fact that I do not currently writ
by gavinray 7y ago
I have followed this language passively for ~1.5 years. I think it's revolutionary, and the big barrier for my adoption is the fact that I do not currently write services for the JVM.
But the ability to define services as HTTP/Ingress endpoints, Docker containers, and Kubernetes/Openshift resources natively as part of the language is incredible. Add that to the fact that they have native support for things like tabular data and table queries as primitives, stream operations, distributed transactions baked in, multiple kinds of service-level auth natively, and a bunch of other goodies like observability/metrics primitives + support for Kafka/OpenAPI/etc etc and you have one hell of a language.
Interoperability with the existing Java and JVM ecosystem is huge.
I would be unpleasantly surprised if this does not take off, or at least similar concepts in other languages. Today, the closest thing you can get is Pulumi for defining infrastructure + deployments in code, and then your regular application codebase on the side.
If you want to see a featureset that a modern language built for web-services & cloud-native architecture should strive for, check out their learn-by-example list (in particular, the items past basic grammar & syntax):
https://ballerina.io/v1-1/learn/by-example/ https://ballerina.io/v1-1/learn/by-example/
- lmilcin 7y agoI looked through examples and I don't see what's so revolutionary about it. This is specialized language suited for more or less one task that has nothing specialized for that task which cannot be rolled in Clojure in a day or two. Challenge me, give one example that can't be done as easily with Clojure.
- tluyben2 7y agoI am curious as well; this still looks like too much plumbing to be revolutionary. It is too close to what we have been doing for years with mainstream languages and tools.
- gridlockd 7y agoGenerally, the big benefit of not using Clojure is to reduce the probability of having Clojure programmers on the project.
- lmilcin 7y agoThis is offensive. Do you want to mean all Clojure developers are garbage? What technology are you working with? Does your entire community consist of stellar individuals with no faults? Clojure problems typically start because some member of the team had enough power to convince their manager to do something in Clojure. It is not an organization that typically hires Clojure developers and has already people that know Clojure and can interview Clojure candidates. Clojure projects are typically a byproduct of having developers who are not satisfied with your language (Java most of the time) and try to seek out a better tool for the job. It is not an inherent problem with Clojure or those people. Most developers need an organization to support them and lacking expertise around them they tend to fail in one way or another. Programming Clojure requires huge amount of discipline and guidance with regards to the structure of actual code which you don't have when you just had got hooked up on it and red through couple of articles. Lacking the discipline and guidance, the code reflects thinking process and understanding of Clojure by a single, novice developer who has the most power within the project. But that is because of how powerful and malleable lisp is. Languages like Java force you to use particular solutions to particular problems and have huge amount of public guidance and expectations with regards to program structure which means the code is easier to read and interact with by other developers. You would do better by, instead of being lazy in your thinking and offensive to other communities, to actually try to use your head and try to understand the problem.
- deleted 7y ago[deleted]
- gridlockd 7y agoMust've stuck a nerve there. > Do you want to mean all Clojure developers are garbage? Of course not, many Clojure programmers are excellent at programming in Clojure. > You would do better by, instead of being lazy in your thinking and offensive to other communities, to actually try to use your head and try to understand the problem. I don't have to do that, because I'm not using Clojure.
- eyelidlessness 7y agoStatic typing
- eyelidlessness 7y agoLove to get downvoted for something factually true that answers the explicit question above it
- hawski 7y agoI did not downvote you, but how is static typing in any sense revolutionary? It is certainly not a new concept and you know it, but your answer does not elaborate any of this at all. It may be factual, but it is factually useless.
- lmilcin 7y agoYou see, people tend to get hooked up on features of the language they are using especially if they have very limited choice of languages they know. They will vehemently defend their point of view fortified by whole range of cognitive biases. Their combined effect like more alcohol to the drunk to make him feel strong and able to overcome bouncers. I personally believe no person who can't program in both assembly and lisp should call themselves real/full programmers because they have not been exposed to full range of concepts. You have to, of course, start somewhere. But until you have experienced full variety of possible language features you are not really qualified to discuss any them with any authority. See also Blub Paradox (http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html) by the very author of this site.
- eyelidlessness 7y agoI have plenty of experience in Clojure (even some of it still in production!), as well as "C family" languages, both statically and dynamically typed. I didn't answer the question out of ignorance. The thing that immediately jumped out at me that "can't be done as easily with Clojure" is static typing.
- 7y ago
- tannhaeuser 7y agoI won't challenge you, but if you're looking for a Clojure/LISP language discourse you might be interested in what James Clark has to say about his language choices. James is behind Ballerina and was working on SGML and groff in his former life, had specified/implemented DSSSL, the transformation and stylesheet language for SGML based on Scheme, and later XSLT (based on his experience with DSSSL, although without LISP syntax).
- maxmcd 7y agoThis is pretty cool: https://ballerina.io/v1-1/learn/by-example/docker-deployment.html https://ballerina.io/v1-1/learn/by-example/docker-deployment...
- a_c 7y agoOn quick glance, it looks like a language with lots of battery included. Plus rpc, thrift, maybe?