[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)