6 ms·
These days it’s more about the ecosystem rather the language itself. While most language provide the basics, sooner or later you will end up needing something
by noncoml 9y ago
These days it’s more about the ecosystem rather the language itself.
While most language provide the basics, sooner or later you will end up needing something that is only available for the most popular 5-6 languages.
E.g. S3 APIs or drivers for Riak, or gRPC or rabbitmq or something else. Something always comes up.
Having said that, the packages listed in Racket’s webpage seem quite comprehensive.
- giancarlostoro 9y agoIt's a mixture of: standard library (see how quickly Go was adopted, especially when making a web project was an out of the box experience), documentation, and tooling is definitely crucial. If I can download a language and have all these things out of the box (which Racket provides) then I probably will have less friction than someone programming in C or C++ (with 0 experience in either those or Racket mind you) who have to figure out what compiler to get, what editor / IDE to use, how to configure their IDE / editor, what magic terminal incantations to do all while I'm building websites and GUI's on Racket in a matter of minutes (from examples of course, but now I can play with those). All because Racket has: documentation, tooling and a good out of the box stack.
- irahul 9y agoA language with large standard library and tooling is awesome. But Racket still falls short on api wrappers for tools(message queues, zero mq, templates...) and services(payment gateways, google cloud or azure apis...). It's a chicken and egg problem. Unless a significant number of people start using it in production, Racket isn't going to have extensive libraries and unless it has the libraries to hit the ground running, a significant number of people won't try it.
- baldfat 9y ago> you will end up needing something that is only available for the most popular 5-6 languages The thing that is the Special Sauce for Racket is it's macro system. You can build your own language for specific things easily or you can extend Racket with a library also much easier then the other 5-6 languages. Racket really has a chance of being the Python of functional(ish) languages. The ability of the community to produce a great ecosystem is all right there baked in. http://jeapostrophe.github.io/2013-07-22-123list-post.html http://jeapostrophe.github.io/2013-07-22-123list-post.html I also think the documentation is all in one place. The library Scribble makes it simple for everyone to document your macro/library simply and uniformly. I really have high hopes for Racket over the next 5 years.
- irahul 9y ago> The thing that is the Special Sauce for Racket is it's macro system. You can build your own language for specific things easily or you can extend Racket with a library also much easier then the other 5-6 languages. Compare the raw format: https://stripe.com/docs/api/curl#metadata https://stripe.com/docs/api/curl#metadata with Python: https://stripe.com/docs/api/python#metadata https://stripe.com/docs/api/python#metadata How are macros going to give me a better solution that the one which exists, is tested and have been used by others for some time? Besides, macros are a meme. What difference are macros going to make when wrapping a api? Can you show me an existing lisp/clojure wrapper which is more expressive than python/ruby?
- bad_login 9y agoThe example you give doesn't have boilerplate so macro can't do more. Macro can help for two things: - reduce boilerplate - add new function to your language (often specific and limited in context of use [racket's macro a suposedly composable]). Example: racket match, clojure.async.
- irahul 9y ago> Macro can help for two things I know what macros are and what macros can do. The parent poster made a comment that somehow macros can help overcome non-existence of wrappers in Racket. We both agree that macros won't help in this case, and my personal opinion is macros are a meme. They help some in very limited circumstances yet they are touted as a productivity multiplier. A pattern match over if-else doesn't really buy much. It's nicer, sure, but not by much.
- bad_login 9y agoThe specific problem of wrapper around HTTP API have been resolved with WSDL (https://www.w3.org/TR/wsdl https://www.w3.org/TR/wsdl) assumming the use of WSDL the only thing a macro could do is equivalent of what an external program that generate a python file implementing the WSDL could do. I have written a php parser with the racket LLAR macro and it doesn't add more than an external tool like bison. Reducing boilerplater could make your code less buggy (bugs you catch with your eyes) and could make the meaning of the code more clear. Racket match is realy nice but it will shine if: - You use a lot of immutable datasctructures. - Explore shallow tree like data structures. > and my personal opinion is macros are a meme As far i has understand macro is already in use as Annotations for java. In php, programmers developped complex frameworks that generate code (Symfony for instance) before running the user's code even if it isn't a macro per-se it share the same goal. And i could have mention c++ template, so i don't think macro are a meme they already exists and there is a demand for it.