5 ms·
Show HN: Arturo – Simple, expressive and portable programming language
- salbahuardi 5y agoNo offence intended, but what does yet another programming language bring to the table?
- stchacademy 5y agoNo offence taken. I guess this (quite common) question could go for a wide variety of things... but then, many things would have been left without been invented or even tried. Now, to try to properly answer your question: I guess the simple answer was that I couldn't find what was I was looking for - in a language, in this case. So, I decided to create it myself. :)
- muc1231 5y agoI've played with Arturo before when it was first announced here. Judging by the website revamp, I guess I should give it a second look. Nice effort!!!
- stchacademy 5y agoThanks a lot for your kind words! I've worked very hard on it - both the language and the website - so, I definitely appreciate it. Feel free to join the community and let me know in case you have any questions whatsoever! :)
- muc1231 5y agoThanks a lot for the reply, sir! P.S. I love your examples section too. That must be one of the best documented languages at an initial stage of development!
- julkiolopl 5y agoDoes Arturo have TCP/UDP socket support? What about async operations?
- stchacademy 5y agoGood question. As a matter of fact, the question has been asked again (see here @ our "official" discord channel: https://discord.com/channels/765519132186640445/765519132186640448/837373714571460629 https://discord.com/channels/765519132186640445/765519132186...) As I mention in that specific request, socket programming support is planned but not yet in. But I'll work in it. And yes, given that you're talking about async operations, probably this is the most challenging part to be dealt with. Stay tuned!
- muc1231 5y agoI had tried to make a simple chat server but without much success. Let me see if I can manage to come up with something now.
- mihaiadamache 5y agoAwesome examples!
- 45571 5y agoI love the syntax. Very simple and tidy. Reminds me a lot of Rebol/Red/Boron.
- geromedavid 5y agoImpressive work, especially for an one-man project! I've seen Aguila and Grafito. Would you say they are production-ready?
- thecringe 5y agoAmazing job! Keep going!
- ValentinSorg 5y agoRe-posted here: https://news.ycombinator.com/item?id=24834636 https://news.ycombinator.com/item?id=24834636
- stchacademy 5y agoIf you have any comments/ideas/questions/suggestions, please feel free to shoot me! :) You are also welcome in our "official" Discord channel: https://discord.gg/YdVK2CB https://discord.gg/YdVK2CB
- ferrozz_gg 5y agoWhat about functions ending with "?"? Are they all "predicates"? And what about "if" and "if?"? What's the difference?
- p0oli8 5y agoVery interesting syntax, clearly REBOL-inspired.
- stchacademy 5y agoThanks a lot for your nice comments. I've done my best. As for the inspiration, as I've said before, although the two languages (or the 3 of them, if I include Red) did end up looking quite similar, when I started out I had no knowledge of Rebol (other than the name). So, basically, I designed something from scratch, with its own characteristics. Now, given that, afterwards I sure have studied Rebol/Red a lot, and I must admit that both have served as an interesting source of ideas as well. Looking forward to your feedback once you play a bit with it! :)
- keplablu66 5y agoVery good job with the documentation. Ultra nice and clean. By the way, what's up with the "?" functions? Are they all predicates? And what about "if" vs "if?" ?!
- stchacademy 5y agoThanks a lot for your kind words. I really appreciate it! :) Regarding "?"-functions. Yes, the idea was this: to separate "normal" functions (that is, functions returning something or altering a value in-place) from functions returning a boolean values - let's call them predicates. That's not a rule, it's merely by convention (at least in the built-in library). Re: "if" vs "if?", as I said before... the second one is a predicate, meaning: it does return a boolean value (that of the passed condition parameter). And the main use is... chaining with an "else". ;-)
- piridoxnia 5y agoCool language!!!
- stchacademy 5y agoThanks! It means a lot to me. Please, let me know in case you have any issues or questions. I'm all ears! :)
- nojvek 5y agoI am so used to C inspired syntax with curlies that this seems a bit foreign to me. Java, javascript, php, C, C++, C#, Typescript, Rust, golang, Python I found it fairly easy to pickup syntax since they had many similarities with each other. How to represent functions, assignments, if/for/while seems quite consistent. I found Arturo quite hard to grasp and make sense of.
- stchacademy 5y agoI totally understand what you mean. However - and not because I'm the author of the language - once you get the general idea of Arturo (or any of the languages of the Rebol family: be it Rebol, Red, or Arturo), I assure you that you will find it very tempting not to ever go back to the C-inspired languages. If I could sum up the whole (not-so-)syntax of Arturo, I would say that every "command" takes takes the necessary parameters on its right. And that's pretty much it. print 10 ; that's a valid function call for example or print add 1 2 ; that's also a valid function call (or 2, to be precise) and... a: 1 + 2 ; that's how you "assign" meaning to a symbol other than these super-basics, having a look into the library is pretty much all you'll need in order to get started. I guess this isn't that difficult. :) P.S. Feel free to ask any question you want. Feedback and input of any kind is more than welcome too. Also, our Discord channel is fairly active, so... I would even invite you there, so that we could actually exchange ideas about it in a more... interactive way.
- muc1231 5y agoWell, perhaps it does take some getting used to, but as soon as you appreciate its simplicity, you'll most likely love it. Former REBOL addict speaking. Have a look at this QuickSort implementation -> https://arturo-lang.io/playground?example=sorting%20algorithms%20-%20quicksort https://arturo-lang.io/playground?example=sorting%20algorith... I would call this rather sweet.
- beastiee 5y agoVery interesting. Does it run on Windows 10? Android?
- stchacademy 5y agoShort answer: it does (yep, both on Windows AND Android). Long answer: Arturo's aim is to be able to run, easily and effortlessly, on anything you can imagine. Right now, it supports macOS, Linux, Windows, Raspberry (ARM-based Linux), FreeBSD + Web/JS. Windows support may leave a tiny bit to be desired, but that's exactly what I'm here for: to make Arturo better. And better. Looking forward to your feedback! :)