Kicking Off the Repl.it Programming Language Jam
repl.it
repl.it
Isn't this like saying: "the construction industry is growing fast, how come there are no new hammers being invented every other week?"
I, too, love to learn new languages that introduce me to new ways of thinking and don't want that influx to dry up, but I don't think it is necessary from the perspective of programming as an industry.
I can’t keep up with all the advances, in practice or research.
The pace of PL changes and new entrants seems to have quickened immensely in the last 5-10 years.
I don't have a view on the right pace of change, but the idea that it's "slow" feels weird.
I have a lot of PLI ideas myself. I have for a long time, but increasingly it feels like there's little or no need for it (sadly!), because the space is crowded with a steady flux of new entrants and new ideas as it is, many of them well marketed too.
Adding more may be fun to do as an individual. PLD and PLI are fun! But it doesn't seem like we lack for contributors in this area.
I think you may not understand their intent which is to bring innovation to programming language design.
Language design is one of those "hard" problems that most feel is meant for "rockstar developers" like Rich Hickey or José Valim.
To me, it appears that Repl.it is doing two things with this hackathon:
1. supporting existing language designers creativity
2. encouraging "regular" devs to try their hand at proglang design
Ironically enough, a lot of the criticism of my tutorial was that we have plenty of compiler tutorials already and don’t need any new languages...
Change is Threat to the status quo.
That's in millions.
If anything what bothers me is not the lack of innovation in programming languages per se but the relative lack of innovation in program representation. We have high res monitors with incredible graphical capabilities but we still mostly just represent code as flat text files. There've been a few experiments to change the status quo, I remember the Lighttable editor making a bit of a buzz a few years ago, but nothing really changed overall. I wish that a big company like Google, Apple or Microsoft attempted something bold in that space.
Me too. I tried stirring things up a bit when we were nearing the end of Eve, but nobody bit. This is work that _can_ be done, someone just has to fund it and let it grow without too much interference. The big players certainly have the ability to take care of the first part, not so sure about the second though.
> I remember the Lighttable editor making a bit of a buzz a few years ago
It's hard to believe.. but that was 8(!) years ago now. Time sure does fly.
That inefficiency has a beneficial side effect too - it eliminates whole classes of bugs that come from devs doing hard stuff.
Exactly, We don't need a new programming language every month. We need a new IDE every month. I believe there is a lot of space for improvements.
There's still a huge amount of development being done in C.
> If anything what bothers me is not the lack of innovation in programming languages per se but the relative lack of innovation in program representation.
One of the benefits of using text is you get a huge number of tools that work with it, without the things that are par for the course these days like vendor lock-in. It'd be interesting to see new efforts in this area, but there's a huge barrier to this.
That’s true, but you can store code in flat text files even if you don’t represent or manipulate it as plain text.
I know, I do some of it! My point was more that 20 years ago in my experience you couldn't call yourself a coder if you didn't know some C. Nowadays I find that most novel coders know about it but can't really write it "fluently".
Many people still know, study and even use it, but it's not quite as ubiquitous as it once was.
I think the key issue here is that flat text files remain an universal standard, easily handled with commodity tools and editors, often bundled with the OS itself.
Once in a while someone wants to revolutionize code representation (like Light Table, which you mentioned). "What if we represented code as a... flowchart, a graph of nodes, a city, a pie chart, a mind map, $YOUR_NOVEL_IDEA_HERE? Wouldn't that be great and take advantage of current hardware to the fullest?"
It turns out it's really hard to beat good old flat text at convenience and interoperability with standard tools.
It's a very tall order for some lone coder in their basement, but it's called Monday for Google.
I also wrote recently about how GPT-3 being so good with little training at code generation might make for interesting advancement in programming environments: https://blog.repl.it/codingai
www.blockstudio.app
It uses extended graphical rewrite rules, so you define the “logic” for your program by manipulating the objects that define your program. I could write more words here, but visit the link and check out the tutorial.
Text win - XML win too verbose and we have Json.
Whilst explore is ok (microbit I use the graphic as it is new but switch to text once i know the command). The horrible windows use click and we still use server as it can scripted, seen, edit. Easily.
We look with 3D graphic but please do not opt for a VR based prog language. Some part of the design may be graphic. But mostly text.
Compared to that, tools for programming are a brand new concept. I don't think the currently-popular languages are anywhere near optimal.
> One answer could be that programmers are not that interested in thinking about languages. Or that our languages today are sufficient and everyone is happy. But spend a few minutes on any programming forum, and it’ll become clear that a lack of enthusiasm and opinions on languages could not be the reason why we don’t see more programming languages.
Are construction workers constantly complaining about their hammers and not seeing change? If not, then the analogy doesn't really work.
But that's like cutting down visual noise in text files, e.g. with python or haskell, and editors with autocomplete, and faster find tools and version control.
Building is in the early stages of automation, with large chunks pre-assembled in factories (with joinery, wiring, plumbing, etc. all installed), and then fixed together on site. The factories are becoming more automated as well.
Maybe not hammers, but there is still a lot of innovation in the basic tools of the construction industry. Look into some of the interesting recent cement innovations, a tool that's been in use since the Romans!
Humans always keep innovating even if the benefits are marginal they add up over time.
I'd say there are still lots of opportunities for language innovation. The increasing reliance on concurrency to achieve performance gains has spurred much of this. People are also looking at languages to simplify formally defined software systems. AI may make it possible for much more terse methods of programming. I'd personally love to see more work done on declarative ETL specific languages.
Tooling around development (langs, editor, shells, debuggers, etc) is at 2 apart sides: Supported by deep-pocket companies or by the crazy/love of a very few individuals.
So, the idea to at least get a little push to justify the time is a big plus, IMHO.
This few years this group is becoming a little bigger (check for example https://www.reddit.com/r/ProgrammingLanguages/).
When i start with the idea of tablam I feel is like walk in a deserted planet, now is more like a little oasis in the middle!
So I invite you to provide a compelling case for how this is a call for free labour.
I tried to log in to check whether things had improved, but apparently I need Google's permission to do so now? And, in fact, nothing will run without allowing Google's JavaScript, even once I've logged in.
Anyway, version control is there now, and you can edit existing Git repos! Except it's actually GitHub, not Git, so I can't use it for any of my existing projects, including my programming language…
That being said, I think the world is better with Repl.it in it. It's not like these other things I criticise where I think we're better off without them; Repl.it's flaws are infuriating because they're stopping me from appreciating something potentially great.
We've improved performance a lot and we'll keep working on it. I just timed it and it took me 5 seconds to start a new Python repl and execute code :)
> I tried to log in to check whether things had improved, but apparently I need Google's permission to do so now? And, in fact, nothing will run without allowing Google's JavaScript, even once I've logged in.
What do you mean by this? You can log-in via Google but that's about it.
> That being said, I think the world is better with Repl.it in it. It's not like these other things I criticise where I think we're better off without them; Repl.it's flaws are infuriating because they're stopping me from appreciating something potentially great.
Thanks we're always happy to hear feedback, negative more important than positive. I'd invite you or anyone who loves Repl.it but find it to be lacking to apply to work with us https://repl.it/jobs
> Anyway, version control is there now, and you can edit existing Git repos! Except it's actually GitHub, not Git, so I can't use it for any of my existing projects, including my programming language…
Any feature that's implemented in the UI is implemented as abstraction over things you can do by opening the shell. Because we are a small team that prizes simplicity over completeness, and because GH is the most popular we just made that the default.
But you can open the shell (command/cntrl+k and type "shell") then use git to your hearts desire :)
We'll probably add native GitLab or whatever others want in the future. You can always leave feedback here and tell us what you want: https://repl.it/feedback
I last used Repl.it so long ago, I didn't know that there was a shell. (Which is odd, since I read about how you can technically use arbitrary programming languages by installing them via the shell just a few hours ago…)
Leaving feedback now. (Fortunately, you don't need Google to do that, so I don't need to mess with my browser again.)
It has changed a lot, but not unrecognisably :-)
Haskell 1 is older than Python 1, Linux 1, Java, PHP, Internet Explorer 1.0, and the web generally.
Elixir (2011), Clojure (2007), Rust (2010), Go (2009), Haskell (1990), Elm (2012), TypeScript (2012), Nim (2008), Crystal (2014), Swift (2014), Kotlin (2011), Dart (2011), Gleam (2019),
There is also the following that came out in the last 3 years:
Zig (2017), Mint (2018),
But also: You have to build a REPL.
If I'm constrained to a 60s (50s?) interaction model with my language, how am I gonna build an innovate language? See https://www.youtube.com/watch?v=HnZipJOan54&t=394s for my take on PL innovation - can't happen in repl.
That said, this is great, I'm all for encouraging experimentation.
What am I missing? How is Repl.it notably useful to the process of creating a new language? It _seems_ like this is more of a "you can do it in the cloud, but not quite as well" kind of thing.
Most of these even have JavaScript targets already.
Edit: OCaml is supported through Reason Node.js on BuckleScript.
Any ETA on easing this requirement? :)
somewhat related: the Pioneer challenge calling for a "Terminal 2.0" happened this weekend and you can check out the submissions here:
https://frontier.pioneer.app/challenge
I love ambitious challenges like these. Is there a hackathon for reinventing the browser? Refreshing to re-think fundamentals once in a while. Thanks for organizing the jam!
- https://github.com/replit/prybar
We're also hiring someone to work on languages at Repl.it: https://repl.it/@util/jerbs#open-positions/language_hacker.t...
This is akin to various frameworks/libraries/packages in programming world. A new programming language shall only come when something fundamental changes eg. languages to support multiple cores, going back to async as single cores become good enough, quantum computing is going to spin off new languages.