3 ms·
Really agree with that last part about framing it as a better spreadsheet first. What's the language you're working on? care to share a link?
by juancampa 9y ago
Really agree with that last part about framing it as a better spreadsheet first.
What's the language you're working on? care to share a link?
- seanmcdirmid 9y agoThe spreadsheet idea is what I'm trying out ATM (hopefully will have a good demo in a month or two). I like Fowler's view on this from 2009: https://martinfowler.com/bliki/IllustrativeProgramming.html https://martinfowler.com/bliki/IllustrativeProgramming.html
- chubot 9y agoI've always wanted to make a programming language, but I just tell everyone it's a shell, since that is more understandable and less "threatening" [1]: http://www.oilshell.org/ http://www.oilshell.org/ The thinking is that if I fail to make a new programming language, which is the 99% case, then at least I can make a "better bash", which I know people will use if it works. It was on the front page last week, although this is the second time it has become a flame war between sys admins and developers: https://news.ycombinator.com/item?id=16154438 https://news.ycombinator.com/item?id=16154438 I haven't gotten a chance to work on the Oil language part much, but I wrote a little bit about it here: http://www.oilshell.org/blog/tags.html?tag=oil-language#oil-language http://www.oilshell.org/blog/tags.html?tag=oil-language#oil-... Anyway, I think the shell has a lot of potential for beginners because it's the first "language" you'll encounter when booting up a PC. My first "language" was actually MS-DOS batch files!!! (Although note that the project isn't prioritizing beginners over experts.) The shell is just stuck with decades of legacy, to the point where people actively avoid it (as shown by the HN thread). But the only way to "kill bash" is to reimplement it, which I have almost done! So now that I have a clean architecture / prototype, the plan is to speed it up, and evolve it into a different language without the legacy. There will also be lots of extensions, like a built-in awk paradigm of streaming, and a built-in make paradigm of incremental and parallel computation, etc. There are a lot of good concepts in Unix, which are not even available in Python, but they're hidden behind these crappy 70's style macro languages. It's interesting that the development of shell, awk, and make were about the time when people started figuring out to write parsers! Historically, awk and yacc were almost co-developed. If you're unfamiliar with shell as an interesting language that's distinct from Perl/Python, the he "shell-the-good-parts" tag might help: http://www.oilshell.org/blog/tags.html?tag=shell-the-good-parts#shell-the-good-parts http://www.oilshell.org/blog/tags.html?tag=shell-the-good-pa... [1] I recently reposted this "programming language checklist" which summarizes what I think of new programming languages :) https://www.reddit.com/r/ProgrammingLanguages/comments/7mcsx3/programming_language_checklist/ https://www.reddit.com/r/ProgrammingLanguages/comments/7mcsx...
- juancampa 9y agoHahah the checklist is hilarious. When I was learning about linux I used to find bash cool, then I moved to Windows for a long time (for game development) and when I came back I couldn't hate it more. It needs to be deprecated for something better. I hope Oil has closures, I love closures.
- empath75 9y agoAre you worried that you might end up reinventing Perl?
- chubot 9y agoI addressed this a bit here: https://www.reddit.com/r/linux/comments/7lsajn/oil_shell_03_release/drpfuxm/ https://www.reddit.com/r/linux/comments/7lsajn/oil_shell_03_... I mentioned I would write a post called "Python Is Not an Acceptable Shell". I think it's also clear that Perl isn't an acceptable shell, simply because shell still exists. And awk and sed still exist -- in fact I believe it's common these days to use shell/awk/sed but NOT Perl, which means that Perl fell short of its mission. (I certainly prefer shell/awk/sed to Perl.) There is overlap between Oil and Perl, which is ironic because I've written probably 100x-1000x the Python code that I have Perl code. But I would say I'm tackling some of the same problems, but not using the same solutions. An obvious thing is that Oil will not be nearly as line-noisey as Perl, which is the thing that is most often complained about (rightly or not). Perl also doesn't have some obvious shell constructs like pipelines. I'm pretty sure you just "shell out" for such things, which isn't a good solution. I've been looking at Perl 6 too, and there is overlap there too. But I honestly think a new shell has more of a chance of being adopted widely than Perl 6. There is apparently still an unresolved schism between Perl 5 and 6: https://www.reddit.com/r/perl/comments/7r1b33/an_open_letter_to_the_perl_community/ https://www.reddit.com/r/perl/comments/7r1b33/an_open_letter... As far as I can tell, Perl 6 is even further from a shell than Perl 5 is. Python 3 is also less suited for shell-like tasks than Python 2 is (due to its Unicode conventions).
- cestith 9y agohttp://perldoc.perl.org/functions/open.html http://perldoc.perl.org/functions/open.html