7 ms·
The Zimbu programming language
- _bohm 4y agoSafe to say this project is dead? The repo URL given on the website 404s: https://bitbucket.org/zimbu/zimbu https://bitbucket.org/zimbu/zimbu
- sigzero 4y agoFrom a 2021 mailing list post: Yes, bitbucket has dropped Mercurial. I'll look into putting Zimbu up on github. I'm not currently working on it, but some people might find it interesting and want to try it out.
- speps 4y agoNothing on his GitHub profile either, just a mention of Zimbu in his bio: https://github.com/brammool?tab=repositories https://github.com/brammool?tab=repositories
- kryptiskt 4y agoHe refers to Vim9 script in the comment about the lack of work on it on the top of the page, so apparently it saw work fairly recently. To my surprise, I thought it was long dead. I still can't get past the unpaired } as the ending delimiter. It's a superficial reason, but there are many languages out there, and it's easy to be picky.
- osener 4y agoI found a fork of it on GitHub for those interested. Here's a link to the first commit which hopefully contains unmodified import of Moolenaar's hg repository: https://github.com/TsukiGva2/unnoficial-zimbu/tree/3ea616b338691951b2d0f0e997a78238ca24619f https://github.com/TsukiGva2/unnoficial-zimbu/tree/3ea616b33...
- dzonga 4y ago> You don't want to require programmers to have a degree, so C++ is out. one of the funniest things I have seen as a selling point for a pl.
- pca006132 4y agoCan a language that uses GC (presumably, it says no manual memory management) be used to program an OS? Just wondering... I think the home page is not very informative as it doesn't really tell me what features are there in this language, but just what it hopes to be. And tbh, from my experience using vim script, knowing its author may scare me away from this...
- Jach 4y agoSure, the heritage of Lisp Machines shows that well enough. Or a modern version: https://github.com/froggey/Mezzano https://github.com/froggey/Mezzano Not all GCs are equivalent, though.
- RcouF1uZ4gsC 4y ago> Sure, the heritage of Lisp Machines shows that well enough. Yes it does. You can use GC for an OS but you end with slow, expensive, and very niche machines.
- Jtsummers 4y agoProject Oberon and its descendants would be a counterpoint to this assertion. GC'd systems language + OS can be made to work effectively and without requiring anything special.
- retrac 4y agoLisp machines weren't slow. The initial CADR machines around 1980 could run simple integer and maths code around as fast as the VAX/780, a very fast minicomputer costing ~$50,000 (processor only!) that was released around the same time. And yet Lisp machines were slow. I chalk that up to a proto-Common Lisp system, with 1970s compilation techniques, being just too much. Millions of lines of code of a fully dynamic software environment with a GUI debugger that let you step into any part of the system including the OS and lowest runtime layers and edit it live -- crammed into a couple megabytes and a couple MIPS. Of course it was slow.
- samatman 4y ago
- ilaksh 4y agoDid he come up with this before or after Nim? Sounds a bit similar on the surface.
- daltont 4y agoI like the idea of splitting FUNC and PROC, but still like the idea of enforcing some level purity on FUNCs at least not allowing them to invoke PROCs, but able to invoke other FUNCs.
- auxym 4y agonim has that feature FYI.
- mathgladiator 4y agoI did this for my language because reactivity demands it.
- djha-skin 4y agoI wonder if the capitalization is required. What modern programming language would require capitalization? I use it in SQL and that makes sense given that SQL is often embedded in other programming language via strings and so the capitalization helps because there are there's no syntax highlighting. But otherwise I don't see the point of it.
- rmorey 4y agoI had never heard this justification for sql YELLING AT ME but honestly it makes sense!
- giancarlostoro 4y agoWhen a Junior developer doesn't capitalize their SQL it makes my eye twitch, and it's not that I personally care, it's just that I'm so used to seeing it as a standard, and my brain wants to go with standards always.
- zach_garwood 4y agoI'm kinda the opposite. I always saw the older developers writing SQL in lowercase, so now when I see someone using caps, I think they must have just read a SQL book or something.
- EddySchauHai 4y agoCaps with nice tabular lining so everything is neat. Handwritten SQL can feel a little like art, I really enjoy making mine look as uniform as possible
- maleldil 4y agoI don't understand what you mean. Can you provide an example?
- EddySchauHai 4y ago
- marcrosoft 4y agoGo meets everyone of his criteria.
- loeg 4y agoNot “fun and new.” (Or arguably, “any system with a C compiler.”) I agree otherwise.
- jollyllama 4y agoWhen did he start zimbu? I can't tell. It might have been before Go was around.
- prox 4y agoThis looks fun indeed! I don’t often have that when I see new language primers!
- dang 4y agoRelated: The Zimbu programming language - https://news.ycombinator.com/item?id=17819857 https://news.ycombinator.com/item?id=17819857 - Aug 2018 (1 comment) The Zimbu programming language - https://news.ycombinator.com/item?id=13258476 https://news.ycombinator.com/item?id=13258476 - Dec 2016 (54 comments) The Zimbu programming language, by vim author Bram Moolenaar - https://news.ycombinator.com/item?id=894591 https://news.ycombinator.com/item?id=894591 - Oct 2009 (51 comments)
- _bohm 4y agoThe first comment on the discussion from 2009 made me chuckle: > I use Emacs, but a Lua-extended vi could be very nice. I wonder if the commenter is using neovim now that their wish has been made a reality
- andrewla 4y ago> From [1] The Hello World program: hello.zu: FUNC Main() int IO.write("Hello, World!\n") RETURN 0 } > Notes: > ... > The } character is used to end a block. There is no {, we know where the block starts. This avoids useless discussions about where to put the {. Excuse me, WHAT? When I saw the first code snippet I thought there was a typo, but the idea of using an unmatched close brace is so horrifying to me that I really have trouble looking further at this. Oddly the first thing that occurs to me is that in Vim it makes it hard to move between the beginning and end of a block, but I think I can safely assume that the author is fairly familiar with using Vim, seeing as he wrote it. [1] http://www.zimbu.org/getting-started/hello-worlkd http://www.zimbu.org/getting-started/hello-worlkd
- gilch 4y agoHardly a unique idea. J also does this in explicit function definitions, but with `)`. https://code.jsoftware.com/wiki/JPhrases/ExplicitDef https://code.jsoftware.com/wiki/JPhrases/ExplicitDef
- nitrix 4y agoThe actual typo in the URL slug is on the nose too ("worlkd").
- carapace 4y agoMentally rewrite "}" to "ENDFUNC"? Having avoided useless discussion about where to put the "{" let's not start one about how to spell "end of block", eh? At least it's not some Unicode sigil.
- mrtweetyhack 4y ago
- codeflo 4y agoThere seems to be a LAMBDA ... } syntax as well that works as an expression. Along with the upper case keywords, I'm convinced this language is meant as a joke, but it's very, very subtle. For example, the "Inspiration" page lists as one of the things it intends to borrow from Java, "use of design patterns": http://www.zimbu.org/design/inspiration http://www.zimbu.org/design/inspiration Like the one thing people love about Java are all the AbstractFactoryFactoryFactories.
- rcgorton 4y ago
- t6jvcereio 4y ago> Why Zimbu? Suppose you want to write a new program, something like a text editor. What language would you write it in? It has to be as fast as possible, so interpreted languages are out. You don't want to micro manage memory, so C is out. You don't want to require programmers to have a degree, so C++ is out. You want fast startup and not depend on a big runtime, so Java is out. It has to run on most systems, anything with a C compiler, so D is out. You want to have fun making something new. What a nice collection of horrible arguments.
- KronisLV 4y agoI actually found most of them to be pretty reasonable. > It has to run on most systems, anything with a C compiler, so D is out. Personally, this probably wouldn't be such a huge factor for me. I actually think that something like Go would also be suitable for most of those other rules. That said, the question eventually becomes about how often those actually are factors that might influence one's choice. For example, in many cases the startup times won't be such a big deal (e.g. webapps with multiple instances), nor will runtime performance (e.g. Python scripts for shuffling some data around).