8 ms·
Mirth – a type-safe concatenative purely functional programming language
- edem 7y agoWhy do we need yet another language instead of improving the existing ones?
- hombre_fatal 7y agoYour profile says you like tinkering, yet you don't understand why others would tinker and experiment with new things? Do you only give yourself a pass for tinkering instead of using your precious free-time to credentialize in and improve existing software?
- tunesmith 7y agoMan, I don't know if it's against site guidelines, but I've never liked using people's bios - even if public on HN - as ammunition against their comments. Isn't it better to just respond to the content of the comments themselves?
- garmaine 7y agoTrying to start from common ground isn’t “ammunition” imho. Although it depends on how it is phrased of course.
- rickbutton 7y agoThere is always a person or two at the bottom of every thread like this that loves to spew hate towards people that like to share interesting side-projects, usually in a "you are wasting your time because your project has no immediate value to ME, go spend it serving my interests instead" sort of way. Claiming to also be a tinkerer in your public bio on the same website is gross, and IMO fair game to point it out.
- pmarreck 7y ago> I've never liked using people's bios - even if public on HN - as ammunition against their comments I'm inclined to agree, but in the case of outright hypocrisy I think the point deserves to be made, because hypocrisy is literally the worst
- DoreenMichele 7y agoIIRC, site guidelines don't specifically say "no ad hominems," but it seems to be generally understood that "no ad hominems" is the correct interpretation of this guideline: When disagreeing, please reply to the argument instead of calling names. "That is idiotic; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3." https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- edem 7y agoI like tinkering but I don't add to the mess by open sourcing yet another language.
- wool_gather 7y agoYou could look at it as a POC: ideas from experimental or niche languages sometimes find their ways into existing mainstream languages.
- willtim 7y agoWhat language are you going to try and improve? Add static types to Python? Or make Java purely functional? Often one needs to start again. Mirth looks much better than most.
- ithkuil 7y agoThere exist other languages in the category, e.g. https://kittenlang.org/ https://kittenlang.org/, http://www.factorcode.org/ http://www.factorcode.org/, https://github.com/cdiggins/cat-language https://github.com/cdiggins/cat-language, https://en.m.wikipedia.org/wiki/Joy_(programming_language) https://en.m.wikipedia.org/wiki/Joy_(programming_language). I assume the parent poster referred to improving those (or at least explaining which deficiencies of those myrth is addressing). (In case you didn't already, you can read about this family of languages in http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programming-matters.html http://evincarofautumn.blogspot.com/2012/02/why-concatenativ...) I'm personally happy that somebody is doing more research in this field.
- voxl 7y agoNote that none of these languages have dependent types and that feature is sometimes impossible to add in full generic power after the fact without completely breaking existing code.
- garmaine 7y agoDoes mirth? I've been perusing the code and haven't seen anything like that so far.
- ithkuil 7y agoI think there is some misunderstood. I just saw mentions of java and python and I just wanted to add some pointers for people who might not know that myrth lives in a void. I didn't want to imply that there is no point in writing a new language.
- garmaine 7y agoUnrelated, do you speak Ithkuil?
- staticassertion 7y agoI think that history has taught us that the best way to get existing languages to improve is to demonstrate the value of a paradigm or feature out-of-band in some other language, possibly a new one.
- edem 7y agoI see your point. This is what happens now with Java.
- dang 7y ago"Please don't post shallow dismissals, especially of other people's work." https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- justfordang 7y agoI know you are a gigantic egomaniac and I'm wasting my time writing this, but if you could ever repress your inflated sense of (mis)justice for two seconds, you might notice that the poster actually asked a perfectly valid question. With the context presented so far (zero, for those keeping score at home), there's no reason to assume that the poster is dismissive of the project being discussed. Why IS Mirth needed, when we can improve other languages? This is actually a perfect segue for proponents of Mirth to explain the niche the language occupies and it's pros and cons for users/engineers. Thanks for making HN cancer, dang. Honestly, you're jumping up random asses on the internet that you'll never meet nor matter to is why the quality of discussion on HN has reached the trough it seems comfortably rested in. But hey. You posted the guidelines. You're a hero.
- Buge 7y agoInsults like this are very annoying to read. If you think the moderation is too strict and is hurting HN's environment, then say that. There's no need to be so mean about it.
- openfuture 7y agoWow.. and you don't feel like the comment you made is contributing to the problem? If you want to live in a society where respect trickles up instead of violence trickling down then you mustn't express yourself with violence.
- coldtea 7y ago>I know you are a gigantic egomaniac and I'm wasting my time writing this, but if you could ever repress your inflated sense of (mis)justice for two seconds, you might notice that the poster actually asked a perfectly valid question. Also a perfectly trivial one, an insulting one, and one that has been asked countless times, and that has no real place in a post presenting a new language but goes to meta yak shaving philosophy. (A question like "what are Mirths differentiating points, what new does it bring" would be an acceptable version -- but that wasn't what was asked). Note that by starting with "I know you are a gigantic egomaniac" and "inflated sense" and "Thanks for making HN cancer", you already show that you don't have a valid contribution to the discussion either. It even seems like the content of the discussion was secondary, just needed to vent at someone...
- hombre_fatal 7y agoI was interested by the title, but it really needs a quick-start + examples in the readme.
- detaro 7y agoI found some more information in posts on the patreon page, but not a good intro.
- ssalka 7y agoCame here to say this. Majority of engineers will bounce immediately once they see there is no code snippets in the README, nor an examples folder.
- wjsetzer 7y agoI think even beyond that, I didn't see a link to any docs in the readme. It may be cool, but I can't use it if there's nothing to tell me how.
- tomsmeding 7y agoTo be frank, the src/ folder is the compiler for Mirth written in Mirth, so there's your example code. However, I do agree that a quick introduction would not be out of place.
- garmaine 7y agoTrue, and that would be a good thing for the README to emphasize. It's mentioned, but in passing. But even so, I know I'd like a good reference of what primitive operations are, the type system, and what's provided by the Prelude.
- paulddraper 7y agoBut the first thing I want to about C is not a compiler written in C. That's an unfriendly intro to almost any language. I want to see a procedure call, "Hello world" I/O, some math or string manipulation, and how to run that myself. After that I can look at compiler sources.
- olodus 7y agoOh wow, cool. Have been hoping for another concaternative functional language. It really feels like one of those underrepresented language types. Always hoped to create something in Kitten but never got around to it and the development was mostly dead last time I looked at it. The way these languages both keeps all the simplicity of a lisp and the strong abstractions of modern functional languages, while still feeling and being close to the metal in a way most func langs never can is something I feel should be better explored. Though I don't see any example code on the README... Seems quite early so it's understandable, but would love to see more about it.
- ofrzeta 7y ago> Always hoped to create something in Kitten but never got around to it and the development was mostly dead last time I looked at it. You can still use Factor http://factorcode.org/ http://factorcode.org/
- 6thaccount2 7y agoThe creator of Factor left years ago to work on Swift I think. I think it is still maintained, but slow releases.
- gre 7y agoThe "Development release" of Factor is the best version to use. I'll see about releasing point versions more often.
- 6thaccount2 7y agoThanks! I only looked at it a little awhile back, but thought it was really cool...as a newbie I need more of an intro text to leverage it.
- 32bitkid 7y agoI thought for a second this was a post on Mirth Connect and I had flashbacks to doing hl7 integrations. https://en.m.wikipedia.org/wiki/Mirth_Connect https://en.m.wikipedia.org/wiki/Mirth_Connect
- yellowapple 7y agoWell now it's called NextGen Connect™, so I guess there's no more naming conflict :)
- taborj 7y agoYeah, but everyone in the industry still calls it Mirth. Personally, I'm a Qvera man myself, but there's a cost to entry there (unless their free Standard edition does what you need).
- athenot 7y agoSame here. For a second I wondered if they had produced a new language. :)
- dokka 7y agoHah! So did I! I'm working on Mirth Connect right now.
- deleted 7y ago[deleted]
- dmix 7y agoI love the syntax. Does anyone know how Github chooses which languages to adopt in their language detector?
- Klathmon 7y agohttps://github.com/github/linguist https://github.com/github/linguist
- tluyben2 7y agoI am only recently aware of Patreon because of that V-lang stuff that has been hyping around on Reddit and here; this however seems very interesting to me. In my spare time I have been working on something similar for a long time but this looks, at first glance, clean and well done compared to my own efforts. Will have a play when I really wake up. Another nice one (again imho) is [0]. [0] https://www.patreon.com/csaba_hruska https://www.patreon.com/csaba_hruska
- molteanu 7y agoBut, but...when do you get to actually use all these awesome languages? > Forth, Haskell, Idris, Rust, Lisp. All great. I would do anything to find a shop that actually uses any one of these instead of the usual boring stuff. Seriously, how would one proceed to find such places?
- fastball 7y ago1. Pick one of those langs. 2. Build a product. 3. ??? 4. Profit.
- Smaug123 7y agoA number of places use Haskell. There's a list at https://wiki.haskell.org/Haskell_in_industry https://wiki.haskell.org/Haskell_in_industry.
- floatboth 7y agoAcademic research :) And personal FOSS projects of course.
- kfk 7y agoVery random question. It’s the first I come across a concatenative programming language. Is SQL also concatenative in a way? I am thinking what you can do by chaining subqueries together for instance using “WITH”.
- 0815test 7y agoNot at all. "Concatenative"[1] is a property of a language syntax; broadly speaking, it holds that an arbitrary expression in the program text can be understood as a sequence of words, and any subsequence is in some sense meaningful; that is, the semantics of the expression as a whole is derived by "concatenating" the semantics of each word, and this semantic "concatenation" is consistent in that it can be used to provide a semantics to any subsequence. [1] https://en.wikipedia.org/wiki/Concatenative_programming_language https://en.wikipedia.org/wiki/Concatenative_programming_lang... This all works well for untyped languages (FORTH is untyped, as an example), but once you add in reasonably complex types you can't really use "sequences" alone, anymore; the directly comparable property is instead true of string diagrams. And once you add some more complexity, you even have to deal with, e.g. proof nets. There are ways to simplify textual syntaxes like e.g. typed lambda calculus along 'concatenative' lines, but mostly these are simple tweaks (De Bruijn notation, and/or De Bruijn indexes) that don't really create a "different" language.
- zaiste 7y agoWould you be willing to point me to some research/articles related to your statement about complex types? I'm (also) working on a statically-typed, concatenative programming language. It's for fun. I'd like to learn more about this topic.
- 0815test 7y agoSee https://arxiv.org/abs/0903.0340 https://arxiv.org/abs/0903.0340 for a basic introduction to the issues, and https://arxiv.org/abs/0908.3347 https://arxiv.org/abs/0908.3347 for a slightly more extensive treatment, also mentioning proof nets. This does not explicitly say that these diagrams can be understood as the equivalent to sequences in something FORTH-like, but this is in fact what the papers are pointing out in a general sense, so I see it as a rather trivial remark.
- softwarelimits 7y agoThis will change everything!