11 ms·
4coder editor is now fully open source
- develatio 4y agoFor anyone else (like me) who doesn't know what this is, it seems like the website is http://4coder.net http://4coder.net
- deleted 4y ago[deleted]
- bitva77 4y agoI love (not) these posts that assume we know what it is.
- capableweb 4y agoI 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.
- paskozdilar 4y agoI understand your perspective, but I disagree in this particular case. "Show HN" is obviously aimed at our consumption.
- radlad 4y agoThis is not a "Show HN." https://news.ycombinator.com/showhn.html https://news.ycombinator.com/showhn.html
- paskozdilar 4y agoHm. 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 4y ago>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 4y ago> 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__ 4y agoWell, 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 4y ago> 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 4y agoI 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.
- jordanmorgan10 4y agoThey will tell stories of you
- AdmiralAsshat 4y agoI wish the stock README.md template for every project started with: "What the hell is ________?"
- zokier 4y agoI 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.
- Barrin92 4y agowith smaller projects it's pretty common that HN hugs the site to death
- unsafecast 4y agoIn 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.
- hammyhavoc 4y agoMost 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.
- dspillett 4y agoFrom 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.
- seanw444 4y agoI 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.
- deleted 4y ago[deleted]
- _gabe_ 4y ago> 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 4y agoI'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.
- hollerith 4y agoHow well does 4coder support users who like using the mouse?
- pengaru 4y agoWhile 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 4y ago> 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!
- scotty79 4y agoIf 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 4y agoIndeed, 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 4y ago> the community could fork it, change the name and carry on development. But it would no longer be "4coder" 4kdcoder?
- lazypenguin 4y agoAnyone know why development is being discontinued?
- werner1886 4y agoJust a stab in the dark but him (Allan) and Ryan Fleury are working on a much bigger project atm (https://dion.systems/index.html https://dion.systems/index.html) which includes an editor too, so i'm guessing they just don't have enough time
- 098799 4y agoI 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.
- deleted 4y ago[deleted]
- vinyl7 4y agoYea, 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
- Koshkin 4y agoThough 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 4y agoProably 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.
- cnity 4y agoThere'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_.
- pantulis 4y ago> 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 https://dion.systems/dion_format.html So these guys are really thinking big.
- dividedbyzero 4y agoSeems to be an emacs clone using C++ for customization instead of elisp.
- unsafecast 4y agoFrom 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.
- behiri 4y agoI 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.
- CyMonk 4y agothey are not on github, but there are builds available from itch.io as free downloads. https://4coder.itch.io/4coder https://4coder.itch.io/4coder
- bilekas 4y ago> 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!
- jcalabro 4y agoAh 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 https://www.youtube.com/c/Mr4thProgramming/videos
- eggy 4y agoI 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.
- maccard 4y agoI 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 https://github.com/Dion-Systems/4coder/tree/master/bin
- deleted 4y ago[deleted]
- dundarious 4y agoThose scripts are incredibly simple, and super easy to write and maintain. It's a breath of fresh air compared to other build systems. But I won't defend the cpp, and neither does the author really.
- maccard 4y agoBut the scripts don't work without the cpp - you can't really excuse the build system without excusing the cpp file. All of the actual logic for the build system is in the cpp file, and at least on windows it fails at the first hurdle - it blindly assumes cl.exe is in your path which is not as common on windows as it is on linux for example.
- dundarious 4y agoIt’s perfectly legitimate to say “run the script from a shell where the environment is set up”. In fact, it’s preferable, and you should only attempt to be “smart” and search for that type of thing if you really need it — why use any search logic at all, if it can be avoided. vcvars and its modern incarnations exist to facilitate this. I had already skimmed the cpp (at least the `build` functions). It’s not necessary for what they’re doing. It could be easily replaced with a shell script. I know because I’ve done something very similar, supporting I think even more build variants and compilers. This is mostly copied from a real script, except I mocked up `build` somewhat, since the real one is slightly more complicated. build() (mkdir -p "$1" && cd "$1" && shift && “$@“ ; ) ... declare -a gcc=(-std=c89 -g -D_GNU_SOURCE -fpie -pie -fno-strict-aliasing -Wall -Wextra -Wformat=2 -Wstrict-aliasing=2 -Werror) declare -a clang=(-std=c89 -g -D_GNU_SOURCE -fpie -pie -fno-strict-aliasing -Weverything -Wno-unused-macros -Wno-used-but-marked-unused -Werror) declare -a debug=(-O1 -D_FORTIFY_SOURCE=2 -fno-omit-frame-pointer -fno-optimize-sibling-calls) declare -a asan=("-fsanitize=address,undefined,leak") declare -a msan=(-fsanitize=memory) declare -a isan=(-fsanitize=integer) ... build "$build/x86_64-linux-gnu-gcc-addrsan-debug" gcc "${gcc[@]}" "${debug[@]}" "${asan[@]}" -o example "$src/example.c" build "$build/x86_64-linux-gnu-clang-debug" clang "${clang[@]}" "${debug[@]}" -o example "$src/example.c" build "$build/x86_64-linux-gnu-clang-addrsan-debug" clang "${clang[@]}" "${debug[@]}" "${asan[@]}" -o example "$src/example.c" build "$build/x86_64-linux-gnu-clang-memsan-debug" clang "${clang[@]}" "${debug[@]}" "${msan[@]}" -o example "$src/example.c" build "$build/x86_64-linux-gnu-clang-intsan-debug" clang "${clang[@]}" "${debug[@]}" "${isan[@]}" -o example "$src/example.c" ... Very easy to write a powershell version for Windows. If you know the compiler flags you want, nothing beats literally just writing them all down in a script, when it comes to debugging issues.
- dang 4y agoRelated: 4coder, a modern text editor based loosely on Emacs - https://news.ycombinator.com/item?id=23444912 https://news.ycombinator.com/item?id=23444912 - June 2020 (16 comments)
- obert 4y agonote 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 4y ago[deleted]
- masukomi 4y agoyup. was reading the readme and going .... "yes, but WHAT IS IT?!?!"
- opan 4y agoWhat is the license? I don't see it at a glance.
- null4bl3 4y agoI 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 4y agoAn 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 4y agoHave you looked into lite (https://github.com/rxi/lite https://github.com/rxi/lite)? It's quite minimal, but easily extensible and is very lightweight.
- erung88 4y agoHappy to see another code editor goes open-source! Kudos to 4coder team.
- Sakos 4y agoIs there any reason to use this over, say, Sublime Text or VS Code?
- heywoodlh 4y agoI'm a huge advocate for making everything open source so good for 4coder! I feel like a couple of posts on HN the past few months have been "X is going open source". It makes me question why projects that aren't open source when they initially release switch over to open source later. I understand keeping a repo private before having a working/stable product, but why release a product as closed source and then open it up later? Why not just keep the product off the market until it is ready to be released and make it open source before or at launch time? I totally have space that I'm just crazy but as someone who tries to keep my stack as open source as possible I find myself not really interested in products that start closed source and eventually open up. Is it just me? Just to reiterate: I'd rather a project go open source later vs never. EDIT: I just realized the context for 4Coder was that it was a "we're ending this product so here's the source for anyone who wants it" -- I am super grateful for closed-source products that do this. But my question is still relevant for other projects that have done what I described above.