3 ms·
> I get annoyed because I have to work around C's warts to do what I want, and that is only happening because I think in my language That is exactly what motiv
by rented_mule 5y ago
> I get annoyed because I have to work around C's warts to do what I want, and that is only happening because I think in my language
That is exactly what motivated me to start thinking about my own language and what made me want to keep working on it in the early to mid 1990s. Luckily, I started learning several languages so that I'd have a better idea of the design space. Someone suggested I take a look at a relatively unknown language called Python because it fit how I was thinking about things. He was right and that was the anecdote for me - finding a language that fit how I thought about programming well enough to eliminate enough of the annoyances that were my motivation.
The lesson... If you're thinking about designing a language, study as many other languages as you can so that you get a better sense for the design choices involved and how various concepts fit together. Ask people experienced with those languages what they like / dislike about them. Write something challenging enough to get a first hand understanding of some of those pros and cons. If you push on with your own language, this will help your efforts significantly. If you get lucky, you might find a language that stops your descent into the rabbit hole.
The above might only work if you can accept that languages are sufficiently complex that they all have real problems, even yours when it's "done".
- ghoward 5y ago> If you're thinking about designing a language, study as many other languages as you can so that you get a better sense for the design choices involved and how various concepts fit together. I've written C, C++, Python, Ruby, Lua, Bash, POSIX sh, C#, Java, JavaScript, Common Lisp, Racket, Haskell, bc, dc, Zig, BASIC, Tcl, and some others I'm probably forgetting, and I've studied Rust, D, Ada, Idris, Coq, Isabelle/HOL, HAL/S, OpenGL shaders, Cilk, Cyclone, Ceylon, Scala, Clojure, Kotlin, F#, Scheme Lisp, Jai, Julia, Perl, Nim, and probably even more that I am forgetting. Does all of that count? :) > Ask people experienced with those languages what they like / dislike about them. Write something challenging enough to get a first hand understanding of some of those pros and cons. If you push on with your own language, this will help your efforts significantly. Yes, I agree. And I have done all of that. > If you get lucky, you might find a language that stops your descent into the rabbit hole. "Lucky" is the operative word. Unfortunately, I'm picky and haven't been that lucky.
- jecel 5y agoIt is interesting to see such an extensive list that doesn't include Smalltalk or Forth. The lack of Pascal/Modula-2/Oberon is not a problem given Ada. Not having APL (or J or K) might not hurt if you get the needed ideas from Julia. Other languages such as Cobol (or the microcomputer equivalent such as dBase) most people can probably live without.
- ghoward 5y agoAh, whoops. Smalltalk and Forth are two languages that I have written a bit of code in and studied extensively. I did say that I was probably missing some. Oh, and Go. I've written some Go.