mdhughes
Joined 15 years ago
Joined 15 years ago
Option 1: MS has a Linux subsystem now. Problem solved, but maybe not customer-friendly.
Option 2: Cygwin probably works, I've seen John Cowan mention it in IRC.
Option 3: This somewhat messy process: https://wiki.call-cc.org/compiling-chicken-on-windows-xp-wit...
[Chez Scheme](https://scheme.com) is super fast, and has the best REPL I've ever seen, but can't easily make binaries, and has limited external libraries. It's R6RS, which I prefer, but in the event you find other Schemers to work with about half of them are going to be annoyed it's not R7RS.
I found Racket to be substantially slower to compile and at runtime, the library is weird and not what I expect of a Scheme, and DrRacket IDE has some annoying quirks (it destroys your REPL environment every time you edit & run source, which is just monstrous). It's really heavily designed around educational uses, not so much production, and with the "Racket 2" changes it's likely to fragment and chase off any serious users.
Learning one Scheme (with SICP, TSPL, etc.) gets you 95% of the way with any Scheme; not so much with the three major LISPs (CLISP, Clojure, Arc). You'll still spend half your time reading library docs and SRFIs, which is where they all differ.
With any Scheme or LISP, you're going to face opposition from soi-disant "programmers" who don't like to learn anything about programming, and managers who don't want to support anything that isn't in the last 5 buzzwords they've heard, but if you own your own project, it's pretty great.
Racket's weird, not quite a Scheme anymore, tons of libraries but they're often hard to use, and the object system infected too much of it. And performance is poor even with Chez underneath, there's just too much stuff on top. It's a better teaching tool with the tutorial sub-languages than a production language.
I can't work in CLISP, it's like scavenging a junkyard for parts where some work, some haven't for 30 years. Some people love that experience.
Strong typing (also in Typed Racket) isn't going to improve anything, but it's good for marketing to enterprise people.
The point is to make your own version of a thing; it doesn't have to be one of those few I listed. To see that some other design or implementation doesn't satisfy you, and analyze why, and do it "right". You can only get that by writing something you can compare to something else.
If you do invent a thing for the first time—which you won't—it would be terrible. It'll take many iterations, your own or more likely someone else's. That's how Human tool-making works, from the first half-assed rubbing-sticks-together fire to nuclear weapons (the first Atomic Bomb was not the best…)
And to a certain extent, I don't consider people incapable/unwilling to do this "programmers". Merely typists.
Thought.py is maybe my 4th note-taking system, simpler and more precisely what I needed than any previous. Practice makes perfect. Doing nothing makes nothing.
https://mdhughes.tech/thoughtpy/
This has been mostly used as my engineering notebook, in lieu of stacks of Moleskines.
Simple command-line tool for editing and searching, a pipeline to any Markdown app for display, and DropBox for syncing, that's all I needed.
I could also use it on mobile with Pythonista, with some changes to get a DropBox path and open it in Editorial or Drafts, but so far just having the files is good enough.
My point is, every programmer should be capable of making certain basic tools of their own, such as note-taking, blogging, a calculator, and scripting languages.
New comics are still weekly to monthly, if that. I've completely forgotten the origin of the current catgirl plot, but possibly Ping (or the catgirl she's based on?) will finally do something, maybe in the next couple years? Who knows.
The guy who drew "Sad girl in snow" isn't going to be one of your super productive Jack Kirbys, he muddles along as best he can, like a lot of us.
Atom is fun. It's easy to configure in weird personal ways, get rid of parts you don't use, add your own plugins, change CSS as you like. There's an insane number of plugins and themes. It's like emacs but organized and nice.
So far the statements from project owners in public and on Slack have been that Atom 1 & 2 development continues full speed.
If it is "killed" we'll just fork it and run up a black flag.
In '96, LISP (tail end of the AI winter regardless), Perl (half the WWW was Perl), Tcl (maybe a quarter of the WWW and telnet-based services were Tcl), awk, & Ada were quite common, and Smalltalk, RPG, REXX, & PL/1 were at least as common as COBOL. Python was still obscure but gaining ground. PHP had just been released like smallpox on a vulnerable population.
I had a laugh at Delphi being for people who hate Microsoft. Its actual virtue was good performance and safety in large programs, you bought Borland tools because you wanted to double your program's speed, not for ideology.
Discord does more with a fraction of the resources, and is also Electron. Atom is a giant editor framework, and is still less heavy than Slack in normal use.
Electron can run quite reasonably when you aren't an idiot/under complex enterprise requirements which probably explains Slack's load.
If I want to write a Mac-only app, I can do that in Objective-C/Cocoa, and be quite happy.
For Linux, native means fighting with primitive C and X11 or Gtk, etc., which I can do but I loathe it.
For Windows, I have no idea, C# maybe? I'd rather eat broken glass than install Windows and find[ed.] out.
So if I'm doing cross-platform, my current working choices are Electron, Java, FreePascal/Lazarus, or Scheme.
Electron's easy to build all three platforms on, performance is OK despite the bloated example of Slack.
Java would need to bundle the JRE everywhere, and I've been largely Java-clean for 10 years.
Lazarus is semi-broken on Mac currently, only 32-bit like stone age tools, Cocoa port is unfinished. Maybe they'll get their shit together someday, I like it when it works.
Scheme native binaries are hard and experimental, but getting better.
Using a WKWebView on Mac, then writing a completely different wrapper on Linux & Windows, is unacceptable for my uses.
So my actual shipping code is Electron.
While JavaScript can omit semicolons, it's an incredibly bad idea outside of console/Node REPL. In particular it'll merge adjacent closures or constants, and you'll have an incredible time trying to find that error. Semicolon everything.
The arrow function as ()=>{} is clearer and less likely to suck up adjacent terms.
There's no point in even showing C#, since it's just Java with the capitalization swapped. Go, as well, but at least it's slightly different.
OP should learn some languages which aren't just FORTRAN-with-C-syntax, like Scheme (or any LISP), Haskell, ML, etc.
``` /script d("Hello") ```
But the PC/Mac ESO community tends to be older (rated M) and less gullible in chat. Gold-sellers got a cold reception and rapid bans.
I suspect that'd work on console players, who tend to be younger, if they had scripting and addons, which they do not.
While I have no problem with "Scheme is Spock", I'd put Captain Pike in his beeping wheelchair in the CLISP slot, and Clojure is clearly Kirk: All but married to the Enterprise.
But whooo, there's some tactless stuff in those PHP and Forth slots. And Javascript's a Scotty-type lang now, it's for getting engineering done.