[HN Gopher] 4coder editor is now fully open source
       ___________________________________________________________________
        
       4coder editor is now fully open source
        
       Author : leoncaet
       Score  : 146 points
       Date   : 2022-05-31 13:10 UTC (9 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | pengaru wrote:
       | While I'm not a user of this editor, this seems like great news.
       | 
       | 4coder receives significant attention via the Casey Muratori's
       | video streams like Handmade Hero, and opening it up is sure to
       | produce some positive growth for the development/community side
       | of the project.
       | 
       | The combination of popular development livestreams and FOSS
       | tooling utilized in those livestreams seems like it could be an
       | important part of making FOSS development more sustainable
       | without involving big corporate sponsors.
        
         | capableweb wrote:
         | > opening it up is sure to produce some positive growth for the
         | development/community side of the project
         | 
         | This is not a "opening up" of anything but the source code,
         | with a permissive license. You're free to fork and change
         | anything you want, but it won't be upstreamed ever as the
         | author did the open sourcing because they are stopping
         | maintenance of the project.
         | 
         | So this is more of a "closing down" with the gift of leaving us
         | with the source code. And for that Allen Webster, I thank you!
        
           | mrtweetyhack wrote:
        
           | scotty79 wrote:
           | If there's a demand in the community for further development
           | then the project will be immediately forked and this for will
           | become new upstream.
        
             | capableweb wrote:
             | Indeed, the community could fork it, change the name and
             | carry on development. But it would no longer be "4coder"
             | but based on/forked from "4coder", as "4coder" would no
             | longer receive any updates from this point on.
        
               | metamet wrote:
               | > the community could fork it, change the name and carry
               | on development. But it would no longer be "4coder"
               | 
               | 4kdcoder?
        
               | alexvoda wrote:
               | Or 8coder? And when that gets forked, 16coder....
        
               | vanous wrote:
               | ForkCoder? Or ForkEd...
        
       | develatio wrote:
       | For anyone else (like me) who doesn't know what this is, it seems
       | like the website is http://4coder.net
        
         | jordanmorgan10 wrote:
         | They will tell stories of you
        
         | AdmiralAsshat wrote:
         | I wish the stock README.md template for every project started
         | with:
         | 
         | "What the hell is ________?"
        
           | zokier wrote:
           | I find it bit of a peculiarity of HN that GH links, no matter
           | how non-descriptive, are so often preferred over projects
           | main home pages.
        
             | hammyhavoc wrote:
             | Most probably because the GitHub content will outlive the
             | project homepage, especially when you consider that 4coder
             | is no longer maintained, and thus the source is being made
             | available. Seems logical to me.
        
             | unsafecast wrote:
             | In this particular case, the github link makes a bit more
             | sense, as the main topic of discussion was the fact that
             | it's now open source.
             | 
             | I agree with you in general though.
        
         | bitva77 wrote:
         | I love (not) these posts that assume we know what it is.
        
           | capableweb wrote:
           | I love people who think everything has to be aimed for their
           | consumption.
           | 
           | Some things are aimed at a group of people, and written with
           | that in mind. Someone closing a project/stopping maintenance
           | of something, usually write directly to the group of users of
           | the software.
           | 
           | To expect everything to contain information about everything
           | someone could not know, means everything would have to be
           | extremely verbose. We have search engines, typing "4coder"
           | and finding the website took me around 2 seconds, I'm sure
           | you'd be able to do it just as fast.
        
             | dspillett wrote:
             | _> I love people who think everything has to be aimed for
             | their consumption._
             | 
             | I love how people don't bother providing information that
             | would be easy to provide, the URL to the website would be
             | handy as here it isn't even included in the README on
             | github, then people get all het up when others mention the
             | lack of information.
        
             | masukomi wrote:
             | I love people who think that they have any semblance of an
             | idea of who will see or read their stuff. It's so pre-
             | Gutenberg of them. ;)
             | 
             | You don't have to write your things FOR EVERYONE but it
             | isn't unreasonable to suggest that folks are going to link
             | to random projects on github and that other folks may end
             | up on said project through unexpected means, and with no
             | context, or with unexpected context. It probably follows
             | that that _maybe_ spending the time to write _one sentence_
             | to describe WTF you're looking if you want ANYONE to
             | consume it isn't unreasonable.
        
             | paskozdilar wrote:
             | I understand your perspective, but I disagree in this
             | particular case. "Show HN" is _obviously_ aimed at our
             | consumption.
        
               | johnmaguire wrote:
               | This is not a "Show HN."
               | 
               | https://news.ycombinator.com/showhn.html
        
               | paskozdilar wrote:
               | Hm. It was either removed, or I haven't seen the title
               | properly.
               | 
               | Still, the argument is the same - a person is posting an
               | article on a news site for the sole purpose of other
               | people seeing (consuming) it.
               | 
               | I consider it basic decency to create a good presentation
               | when you're showing something in people's news feed.
        
               | Nicksil wrote:
               | >Still, the argument is the same - a person is posting an
               | article on a news site for the sole purpose of other
               | people seeing (consuming) it.
               | 
               | >I consider it basic decency to create a good
               | presentation when you're showing something in people's
               | news feed.
               | 
               | The individual posting the article may not be the owner
               | of the code base thus making it impossible for the poster
               | to alter the presentation.
               | 
               | If the owner of the code base _has not_ posted a link for
               | others ' "consumption," they would have conformed to your
               | expectations.
        
               | paskozdilar wrote:
               | > The individual posting the article may not be the owner
               | of the code base
               | 
               | Good point, I didn't consider that.
               | 
               | The point of view I'm coming from is that while it's
               | impossible to put all possible information in a README
               | (and such level of detail would probably make it even
               | less readable, like Whitehead and Russel's Principia
               | Mathematica) - there are some things that are reasonable
               | to expect on any kind of public repository (I assume it's
               | a public repository because of the README's public-facing
               | style - "Welcome to the 4coder code base. [...] In this
               | readme you will find: [...]"), such as "what is the
               | purpose of this program".
               | 
               | I know nobody owes anything to nobody, and such criticism
               | might be seen as rude - since we're basically criticizing
               | volunteers - but consider the fact that feedback is a
               | major part of how we figure out our mistakes. If someone
               | is posting their work online, it would be reasonable to
               | assume that they care about their work and want to make
               | it better. Without (constructive) criticism, they would
               | never receive the feedback required for improving. Praise
               | is pleasant and should be given when it's due, but
               | criticism is also useful information.
        
               | __ryan__ wrote:
               | Well, _anyone_ can post a link to HN but only the project
               | author can adjust the project's README. Perhaps a better
               | URL exists, but also perhaps not everything on HN has to
               | be for _everyone_ on HN. This is obviously news for
               | people who know what 4Coder is, not necessarily meant to
               | onboard people who don't want to look up what 4Coder is.
               | 
               | Edit: grammar
        
         | dspillett wrote:
         | From that page "Anticipated Next Version: 4.1.3 (beta),
         | February 2020" so this release as open source along with the
         | github repo being set to archive/read-only looks like an "I'm
         | done. If a community wants to keep this alive, over to
         | them...". Nothing wrong with that, it is much better than
         | complete abandonment in such a way as other people can't carry
         | the torch even if they _really_ want to, but it is a less
         | positive situation than the headline suggests.
        
         | [deleted]
        
       | seanw444 wrote:
       | I remember an Aussie game developer on YouTube uses this editor.
       | I hadn't heard of it before, but it seemed interesting. I
       | eventually settled on learning Emacs instead, because 4coder was
       | closed-source at the time. No regrets. Now I'm probably with
       | Emacs for life. Too unique. Too powerful. Too customizable.
       | 
       | Side note: it's funny how formerly closed-source projects always
       | open up to have tons of spaghetti code and bad design planning.
        
         | pxeger1 wrote:
         | said Aussie game developer on YouTube:
         | https://www.youtube.com/c/RandallThomas
        
         | [deleted]
        
         | _gabe_ wrote:
         | > Side note: it's funny how formerly closed-source projects
         | always open up to have tons of spaghetti code and bad design
         | planning.
         | 
         | I was curious after you said this, so I took a look at the
         | 4coder source. It looks like very straightforward code. The
         | files are clearly marked so you know exactly what they do, the
         | APIs look simple and reasonable, and they have clearly marked
         | folders containing all platform specific code. I'm not sure why
         | you put this side note here, but it doesn't seem to hold water
         | in this case. The code is definitely not spaghetti, and it
         | looks like it was designed with quite a bit of forethought.
         | 
         | Edit: I would just like to add that I saw the author left
         | several comments about the state of the code in the Readme that
         | imply the code is very unstable. I think developers tend to be
         | very critical of their own code, but when I took a cursory
         | glance at the code from an outside perspective it seems much
         | easier to follow then many other projects I've tried to take a
         | look at. For example, for a quasi-open source project, ffmpeg
         | is extraordinarily complex and hard to follow. So I definitely
         | don't think OSS = super well designed code haha
        
           | seanw444 wrote:
           | I'll admit, I didn't actually read the codebase. I just took
           | the notes at face value. I agree. People are harsh in review
           | of themselves.
           | 
           | To your second point: I think it's a matter of size for a
           | project becoming spaghettified. ffmpeg is mature and massive,
           | so it's no surprise it's jumbled at this point. For a project
           | of 4coder's scale, I'd wager that being open source sooner
           | would've benefitted its design.
           | 
           | But, it's in the past. I'm just glad the dev left the code in
           | the community's hands before dropping it. A lot of devs don't
           | even do that, and the project becomes history.
        
           | maccard wrote:
           | > : I would just like to add that I saw the author left
           | several comments about the state of the code in the Readme
           | that imply the code is very unstable.
           | 
           | I dunno, I'm looking at their "4coder_base_types.h" header
           | [0] and redefining basic types and builtin keywords for
           | personal preference (yeah I know, static is overloaded) is a
           | serious eyebrow raiser.
           | 
           | [0] https://github.com/Dion-
           | Systems/4coder/blob/62fe17699a99f7d2...
        
             | _gabe_ wrote:
             | You can just hover over the keyword with an IDE and
             | instantly see that it's just a typedef for static. There's
             | nothing wrong with doing something like this, _especially_
             | since it wasn 't meant to be OSS and more of a personal
             | project until now. In addition, i32 is not an ambiguous
             | typedef. It's way clearer that this is a 32 bit integer
             | than `int` is.
             | 
             | Finally, big libraries do this as well. Freetype is
             | notorious for typedefing weird stuff like FTPos and all
             | that. It's just one way to model the domain language in the
             | code, and that's fine by me. If the big open source
             | libraries can do it, what's wrong with a small one doing it
             | too?
        
             | badsectoracula wrote:
             | The types bit is incredibly common, i think pretty much all
             | codebases i've worked on professionally did that.
             | 
             | The keywords bit isn't that common, though it could be
             | related to some custom script (e.g. having the editor
             | parsing the "function" keywords) or doc generator.
        
         | lutrinus wrote:
         | Regarding your side note, they're at least transparent about
         | that. :)
         | 
         | > I DO NOT recommend learning from this codebase, especially
         | not with an uncritical eye. It may be a useful reference for
         | certain algorithms and architectural ideas, and it certainly
         | contains some cautionary tails. But if you are a beginner, I
         | encourage you to aim for more than emulating the style and
         | structure of this codebase.
        
           | seanw444 wrote:
           | For sure. Perhaps I came off as way too critical. I write my
           | fair share of spaghetti code. I think we all do. But at least
           | in an open fashion, things are corrected far sooner with more
           | eyes on it. That's all I'm saying.
           | 
           | The editor seems cool regardless.
        
       | null4bl3 wrote:
       | I would just prefer an open source alternative to vscode (that
       | wasn't vscodium)
       | 
       | vscode to me is simply to bloated. They should have landed like a
       | year and half ago.
        
         | gnubison wrote:
         | An open source text editor that isn't as "bloated" as VSCode?
         | Sounds like ... all of them, really, try Emacs or vim or nano
         | or vi and maybe you'll find something you like. But if what you
         | want is "VSCode with all the features I use and none of the
         | ones I don't," you'll probably have to make it yourself (or at
         | least be more specific).
        
         | wion531 wrote:
         | Have you looked into lite (https://github.com/rxi/lite)? It's
         | quite minimal, but easily extensible and is very lightweight.
        
       | CyMonk wrote:
       | they are not on github, but there are builds available from
       | itch.io as free downloads.
       | 
       | https://4coder.itch.io/4coder
        
       | dividedbyzero wrote:
       | Seems to be an emacs clone using C++ for customization instead of
       | elisp.
        
         | unsafecast wrote:
         | From my very brief experience with it, and watching Casey hack
         | on it, it's a _much_ more well-designed program. I've used
         | emacs quite extensively, and while I don't tinker with it that
         | much, every time I do it feels like a maze with a gazillion
         | dead ends. It's a terrible experience most of the times, and an
         | unremarkable one the rest.
         | 
         | Also, I feel like the C configuration opens the door to using
         | other languages too, Lua comes to mind immediately. You can do
         | that in emacs too, but it's not as straightforward.
         | 
         | One last thing. One of my biggest gripes with emacs is the
         | performance (I'm using a rather low-end computer). I'm making
         | the assumption that a moderately-sized pile of C++ will perform
         | better than a huge pile of elisp.
        
       | lazypenguin wrote:
       | Anyone know why development is being discontinued?
        
         | werner1886 wrote:
         | Just a stab in the dark but him (Allan) and Ryan Fleury are
         | working on a much bigger project atm
         | (https://dion.systems/index.html) which includes an editor too,
         | so i'm guessing they just don't have enough time
        
       | jcalabro wrote:
       | Ah this is great! Sad that it's not getting any future updates,
       | but on to other projects. I tried using the Mac version of 4ed a
       | couple times, but it never got the TLC that Windows did, plus the
       | emacs-like setup was foreign since I use vim.
       | 
       | The author has a great YouTube playlist[0] as well, bringing you
       | through some basics of their preferred methodology of
       | programming. It's been interesting to follow along and check out
       | how he does things.
       | 
       | https://www.youtube.com/c/Mr4thProgramming/videos
        
       | opan wrote:
       | What is the license? I don't see it at a glance.
        
         | [deleted]
        
         | psydvl wrote:
         | MIT
         | 
         | It's placed in README
        
         | mclion wrote:
         | Mit
        
         | [deleted]
        
         | lytedev wrote:
         | Read on: it's MIT
        
       | behiri wrote:
       | I remember Casey Muratori was explaining his emacs key bindings
       | in one of his handmade hero videos and he said something like 'I
       | would use any editor that has these key bindings and split
       | windows', so I guess that is when the 4coder idea came to life.
        
       | hollerith wrote:
       | How well does 4coder support users who like using the mouse?
        
         | hulitu wrote:
         | You can use On Screen Keyboard with the mouse.
        
           | hollerith wrote:
           | If you select an arbitrary extent of text with the mouse, is
           | that extent highlighted?
           | 
           | Are there then commands that operate on the highlighted
           | extent?
           | 
           | If you double-click a word, it that word highlighted?
        
       | dang wrote:
       | Related:
       | 
       |  _4coder, a modern text editor based loosely on Emacs_ -
       | https://news.ycombinator.com/item?id=23444912 - June 2020 (16
       | comments)
        
       | maccard wrote:
       | I get that the whole handmade shtick is to avoid existing
       | libraries to allow for better software, but when you see things
       | like [0], you realise what cmake is for...
       | 
       | [0] https://github.com/Dion-Systems/4coder/tree/master/bin
        
         | [deleted]
        
       | eggy wrote:
       | I purchased it a few years back, and I was having fun, but a bug
       | on the newest version of Windows derailed me from continuing with
       | it. I was looking for a lean, C or C++-based coder to replace my
       | Vim/Emacs habit! I'll have to check it out again.
        
       | obert wrote:
       | note to future opensourcers: please, please, explain what the
       | project does in your README. People get RTFM so often, maybe it's
       | time for WTFM too...
        
         | [deleted]
        
         | masukomi wrote:
         | yup. was reading the readme and going .... "yes, but WHAT IS
         | IT?!?!"
        
       | bilekas wrote:
       | > that there is a totally separate build system for the custom
       | layer which is also a big gigantic mess of its own. It involves
       | several stages of compilation, and a number of metaprograms.
       | 
       | Sounds like a handful to manage closed source solo!
        
       | 098799 wrote:
       | I wonder how do people come to a decision that it's a good idea
       | to start their own text editor when vim and emacs exist. For this
       | one my guess is the author is a c/c++ developer and wanted to
       | have their editor cusomizable in their desired language. Would
       | that be enough?
       | 
       | It's also not a common thing for projects like that not to start
       | as FOSS.
        
         | Koshkin wrote:
         | Though good and powerful editors, there are reasons why emacs
         | and vim have a very small user share. (Everyone I know prefer
         | VSCode when not using an IDE.) Even JEdit and Sublime each have
         | a dedicated but a comparatively small userbase.
        
           | usr1106 wrote:
           | Proably of the people you know also only a small share is
           | active on HN. At least that's the case for me.
           | 
           | I'd guess amongst HN users the share of emacs and vim users
           | might be higher than for developers in general.
        
         | pantulis wrote:
         | > I wonder how do people come to a decision that it's a good
         | idea to start their own text editor when vim and emacs exist.
         | 
         | It's really a smaller decision compared with the point of view
         | that text files as source code are "holding back our tools -
         | https://dion.systems/dion_format.html
         | 
         | So these guys are really thinking big.
        
           | rtz121 wrote:
           | If text files are holding you back. Smalltalk exists...
        
         | alpaca128 wrote:
         | - Fun         - Learning new things         - No decades old
         | quirks & constraints through backwards compatibility         -
         | Same concept with fresh ideas & multithreading
         | 
         | A lot of good reasons imho, which is why I'm also tinkering
         | with my own little editor. In the worst case I'll have learned
         | a ton and have a small collection of useful libraries. Some
         | innovation in modal editing after 30 years might be nice.
        
         | paskozdilar wrote:
         | > I wonder how do people come to a decision that it's a good
         | idea to start their own text editor when vim and emacs exist.
         | 
         | Vim/Emacs have a huge community and ecosystem, but they aren't
         | exactly perfect. I don't see anything weird about people
         | writing their own editor.
         | 
         | I'd personally love to have a Python-programmable editor a la
         | Emacs, and if I ever write a text editor, it's gonna be like
         | that.
        
         | cnity wrote:
         | There's a sizeable cohort of people (that overlaps largely with
         | the "handmade network") who are tired of hearing "don't
         | reinvent the wheel" and see virtue in rebuilding software. I
         | think it's a good attitude personally, since it's _how we get
         | better things_.
        
         | typon wrote:
         | Both are dead in the water architecturally if you want to use a
         | text editor that can render fonts and other graphics at 60 fps
         | on a normal desktop.
        
           | rtz121 wrote:
           | You don't need to render anything at 60fps. Emacs is not a
           | game, it only renders when needed and that it does pretty
           | fast.
        
         | tuckerpo wrote:
         | Eh, it's part of the handmade effort. Sometimes building your
         | own tool is just fun.
         | 
         | + You don't need to learn a bespoke language to customize
         | 4coder (vim_script in vim's case)
        
         | [deleted]
        
         | vinyl7 wrote:
         | Yea, being able to customize with C++ is peferable for some
         | people compared to vimscript/lisp/etc. Then you have the issue
         | where emacs and vim can choke under reasonable file sizes. The
         | other part is vim/emacs aren't as performant as they could be
        
       ___________________________________________________________________
       (page generated 2022-05-31 23:01 UTC)