Back

CudaText: Open-source, cross-platform text editor, written in Lazarus

144 points8 daysgithub.com
mhd8 days ago

Hmm, interesting genesis:

> When it was 2014 or 2015, we had some big events in Russia (Crimea related) so many people here were excited. I was too, so I wanted to program some new project.

https://sourceforge.net/blog/march-2020-community-choice-pro...

actionfromafar8 days ago

So it started as a celebretion of the annexation of Crimea by Russia?

Alexey_Tor7 days ago

The CudaText author is here. No, I did not celebrate the Crimea 'annexation' (in local Ru talks, we cannot name it 'annexation', we must name it 'reunion'). But I was reading such big amount of news at that time, in 2014, that I was excited only from this wave of news. Many patriotic people in Rus were happy and welcomed that. Many opposition people in Rus were not happy and did not welcome that. But the wave of news was very big. For me the Crimea was not positive news. I never have been in Crimea. I never got the FREE ticket to rest in Crimea. The rest in Crimea is not cheep. In 2014 and in 2022. It costs big amount.

danielEM6 days ago

Yesterday was about to install CudaText, but as usually with such software, before jumping to anything started to read about your project and you and accidentally got to that quote mentioned above. I must admit, it got me spooked. I have a lot of respect to people who do contribute to open source so I do to you, but in current situation my concern is actually safety and trust.

For example I don't think I can give you a trust to binary packages, like in this case:

https://aur.archlinux.org/packages/cudatext-gtk2-bin

Even if they are not containing anything malicious at this moment, it can happen at any time later, especially after gaining a trust of significant amount of devs. And even with your best intentions I can clearly see a scenario where it will happen against your will or even without your knowledge. You know - it is different thing to trust you, and different thing to trust your state...

Anyway, hope this whole war madness (or "special operation" as you're allowed to call it) will end soon.

Alexey_Tor6 days ago

I support your wish about the war or "special operation".

About trust to binary packages: some ppl do build CudaText from source, we have even the bash-script to download the sources + compile them. https://wiki.lazarus.freepascal.org/CudaText#How_to_compile_...

If you afraid to get Pascal code with backdoors: Pascal code does not use any internet libs. Python Addons-Manager uses inet-libs though.

dmz737 days ago

Any chance you can add code completion to python terminal? That would make cuda-text a super-editor on the level of vim and emacs but easier to use.

Alexey_Tor7 days ago

'Python terminal' is 'Console panel', do you mean it? Yes we have the plugin for that! "Plugins / Addon manager / Install", item "Console auto-completion". Ctrl+Space hotkey will work in console.

moistly7 days ago

> Disclaimer: word "cuda" is taken from Serbian language, it means "miracles".

[uncomfortable silence]

zekica7 days ago

The word you are referring to is "čuda" or equivalently in cyrilic "чуда" pronounced "chuda".

JasonFruit8 days ago

It could be, "With all the excitement going on, finding a nice programming project to distract me seemed like a good idea."

DiggyJohnson7 days ago

We need to make sure this isn’t the neutral-connotation usage of the word “excitement”.

A plane crashing into the neighbors house can be “exciting”.

yardshop8 days ago

Cool! I just learned about this editor randomly about a week ago [1], then mentioned it on the thread about Double Commander the other day, a file manager also written in Lazarus [2].

I'm just about to get it to compile. I'm writing a Python version of the Bash script that downloads and installs all of the packages. It's a learning project so it's pretty messy but I intend to clean it up and submit it to the developers at some point.

CudaText is nice, I'm using it to write this compiling script to get to know it better. It's sort of SublimeText-adjacent but also its own thing. I already have a long list of things I want to replicate from my Sublime setup.

[1] http://lazplanet.blogspot.com/2018/05/spotlight-cudatext-hot...

[2] https://news.ycombinator.com/item?id=32331716

themodelplumber8 days ago

The author is really responsive. I reached out about the ability to make snippets run external commands and place the output in the editor. Within a day I think he had implemented it as a plugin.

I use like 100+ of these snippets in Geany, so it was awesome to see it become a feature in another interesting new editor.

smartmic8 days ago

I had to change my editor every now and then in the last years, because something bothered me... the eternal search for the holy grail, so to speak. So Vim and Emacs have already fallen by the wayside. Now I'm actually stuck with CudaText. In my opinion the editor is really first class, I recommend to try it out.

For me, however, also very exciting is the realization that Lazarus/FreePascal programs generally always stand out very positively. The speed and memory efficiency is remarkable!

sigzero8 days ago
formerly_proven7 days ago

Uhm yeah, that is uh, quite, ah, reminiscent, yes.

rpastuszak7 days ago

What?

libpcap8 days ago

What's with the CUDA reference?

dmitrybrant8 days ago

It's from the Serbian word "čuda", which is pronounced "chuda". It means "miracles", and also occurs in many other Slavic languages (Russian "чуда", etc)

lightdot8 days ago

That got me wondering at a first glance too. But in this case, the word stands for "čuda" not CUDA.

Čuda = miracles, wonders, in Serbian (and several other languages).

And odd conglomerate of words from different languages perhaps, one even anglicized (ASCIIzed?) at that... Well, it does get the people talking, I suppose.

Uehreka8 days ago

In trademark law, the owner of a mark (Nvidia in the case of CUDA) can usually make someone stop using a mark if it would lead to “consumer confusion about the source of the goods” (i.e. people seeing “CudaText” and assuming it has an association with Nvidia/CUDA).

IANAL, and have no idea how likely Nvidia would be to succeed in a trademark dispute with this developer. But in situations like this, it’s often good to just not use a name if a large section of your target audience could become confused upon hearing it. Even if you didn’t know about the other product when you came up with your name, and even if it’s technically legal.

Alexey_Tor7 days ago

Author of CudaText here. If I will get the complain from NVIDIA I can rename the project to 'CudeText', word 'cude' is 'miracle'. Now I think that similar name was a little mistake from my side, I needed to name it 'CudeText' earlier.

thebooktocome8 days ago

Perhaps it’s short for barracuda?

weare1388 days ago

There's a note buried at the bottom of the page:

Disclaimer: word "cuda" is taken from Serbian language, it means "miracles".

ziotom788 days ago

The detailed list of features is here:

https://wiki.freepascal.org/CudaText

I did not know of this project, but it looks really good. It's nice to see projects developed in Lazarus!

signaru7 days ago

Besides Lazarus itself, in my opinion after watching the video demo, this may be the best opensource software written in Lazarus/Freepascal.

Sad that I knew about this before but ignored it wrongly thinking CUDA had to do with GPUs.

fithisux7 days ago

Fantastic piece of software. I used it extensively under Ubuntu and Windows.

If they make it available through brew I will use it in MacOS too.

Another one ultrafast program Laz/Pas related was LazPaint.

At some point there was a NotePas too!

breadchris8 days ago

I thought this was going to tell me about a hardware accelerated text editor.

Sin2x7 days ago

From 2020 interview:

SF: What is the next big thing for CudaText? AT: A mate of mine, young programmer Artem Gavrilov from Saint Petersburg, has suggested that editor rendering should be in OpenGL, and he has good experience in 3D graphics and Pascal. I am thinking now how this can be done, it’s a lot of coding even with ready OpenGL libraries. This will make scrolling in editor much smoother. And another idea: make configurable docked panels. CudaText has several panels (Code Tree, Project Manager, Console, Output, etc.) but they are locked in the side or bottom, no configuration, panel cannot be moved from side to bottom, no docking to the right. It’s not needed much but configurable panels are handy.

moffkalast8 days ago

Ray tracing for your fonts!

amelius7 days ago

Edit your text on a virtual beach with VR goggles.

yjftsjthsd-h7 days ago

There are multiple GPU-accelerated terminal emulators; I suppose, why not a text editor?

6ue7nNMEEbHcM7 days ago

The amount of work put into this from single person seems astonishing. Per a forum post the author doesn't even care about the donation page working. I wonder how people get to this point in their life that they can spend all days just coding their oss projects for fun. It seems so out of reach for me.

Alexey_Tor7 days ago

You are exaggerating, I develop it for 6-7 years, and not every day is coding.

gwenzek6 days ago

How does it compare to Sublime Text? This seems to be a FAQ but the link appears to be broken, and I didn't find a corresponding entry in the Wiki.

Alexey_Tor6 days ago

The proper wiki page - https://wiki.lazarus.freepascal.org/CudaText_VS_other_editor... .

1- CudaText advantages over Sublime Text 3; 2- CudaText advantages over Visual Studio Code; 3- CudaText disadvantages compared to Sublime Text / VSCode.

Where did you get the broken link?

gwenzek6 days ago

On the github.io landing page there is a link to https://wiki.freepascal.org/CudaText#Advantages_over_Sublime...

indigodaddy7 days ago

Looks like there is no macos aarch64 version on the sourceforge binary download site? Just seeing amd64 (unless that download includes aarch64 compatibility)

Alexey_Tor7 days ago

It (macOS aarch64) will be there in some weeks, maybe in about 10 days. Older version - https://sourceforge.net/projects/cudatext/files/release/1.16...

macOS AArch64 version needs this to be run: xattr -cr /Applications/CudaText.app/

indigodaddy7 days ago

Cool, thank you! Will be trying it out at work..

pkphilip7 days ago

This editor is crazy fast and is only a 15MB download (.deb)!

Alexey_Tor7 days ago

CudaText has its slow parts (scrolling by Mouse-wheel is not smooth), we are limited by the fact of missing hardware acceleration. But it has its fast parts: https://wiki.lazarus.freepascal.org/CudaText_VS_other_editor...

mrtweetyhack8 days ago
dragosbulugean7 days ago

Product Marketing Issue:

As a user of Hacker News, I don't care that it's open-source, cross-platform or written in Lazarus.

KronisLV7 days ago

> As a user of Hacker News, I don't care that it's open-source, cross-platform or written in Lazarus.

Any piece of software being open source is generally a good thing, since it's less likely that such projects might die off and disappear without someone (even yourself) being able to maintain them, or even add features/fix bugs.

Being cross platform is also a great quality, especially since otherwise you might find yourself using different pieces of software on different OSes, which might be a bit cumbersome. For example, there is no Notepad++ on Linux (using Wine is a bit suboptimal) and so you might find yourself looking in the direction of something like Notepadqq, but obviously it might not give you 1:1 the same experience. That's not the case with something like Visual Studio Code, or even CudaText!

And finally, it's always great to see Lazarus software, it's one of the nicer ways to create GUI software and largely sidesteps some of the framework related issues that other languages face, thanks to its lcl: https://en.wikipedia.org/wiki/Lazarus_Component_Library

They actually have an entire gallery of software written with Lazarus/FreePascal and it's rather interesting to behold: https://wiki.freepascal.org/Projects_using_Free_Pascal

Tozen5 days ago

> ...there is no Notepad++ on Linux...

Notepad Next, is a cross-platform reimplementation of Notepad++. https://github.com/dail8859/NotepadNext

> And finally, it's always great to see Lazarus software, it's one of the nicer ways to create GUI software and largely sidesteps some of the framework related issues that other languages face...

The insanity involved around hating on Object Pascal is just a damn shame. Other languages wish they had something like Lazarus or Delphi.

Lazarus is fantastic, for the desktop. And so are a lot of software projects created with Lazarus. The few gripes that I have with the project, is the very odd refusal to fully embrace mobile development.

They have a kind of half-way solution, for just Android and not iOS, from an independent developer not on the Lazarus team and who they seem to want to keep at an arm's length. I don't know if Embarcadero (Delphi) is paying them to not touch mobile development, but it's quite weird that they don't want to go in that very obvious direction. Lazarus as a complete solution for both the desktop and mobile, would have people shook. However, the clock is ticking, because there are a number of more comprehensive desktop and mobile development solutions coming. Lazarus should have and arguably could have come out with their combined solution years ago. But, as it is, they are great for the desktop. Nobody can take that away from them.

dragosbulugean7 days ago

I've heard these arguments before and they sound good in theory, however in real life I haven't seen it work that way.

Projects dying off depends on developing a revenue stream or being backed by some company with a real revenue stream. Never solely about being open source. I have another comment about this when I talk about Lazarus below.

Being cross-platform sounds great in theory. However, most users don't use multiple OSes. Also, being cross-platform is extremely hard... for early-stage software you're better off making it work well on one platform, then extending when you achieve some traction with users. Being cross-platform with one tech also removes the chances of benefitting of platform specific APIs that might make it work better.

Lazarus, while I find it easy to get enthusiastic about, I'm old enough to have gone through a couple of cycles. The reason Electron with all its issues (memory consumption, app size) is winning is because there's a mass of developers that know how to build apps with HTML/JS/CSS. Like Haskell or OCaml or other awesome languages, if there's no mass of people that can contribute, the ecosystem never takes off — and ecosystem is the main trait of languages taking off. This is why an OSS project written in Lazarus using some relatively unknown UI APIs is unlikely to survive — I hope it does though.

lf-non7 days ago

As a user of "Hacker" News, you are potentially .... a hacker, who is quite likely to care if it is possible to hack on it in general (hence it matters that its open source) and you also likely care if it is easy for you to hack on it in particular (hence the implementation and plugin languages matter too).

dragosbulugean7 days ago

Let's consider Visual Studio Code. It's OSS — still, I read the codebase a couple of times and I wouldn't venture into hacking into it — it's too large.

Being OSS enables hackability, it doesn't provide or guarantee it.

lf-non7 days ago

I wasn't claiming that OSS necessarily enables a specific individual to be able to hack on it.

Just in case of your example if as a TS programmer I learn about a new code IDE that is open source and is written in TS, I might be more motivated to go check it out and explore it. So that fact does deserve mentioning - that is all I was saying. Whether or not I eventually end up contributing to it depends on a lot of factors and is besides the point.

ChefboyOG7 days ago

Hacker News is a largely technical community. If there was any community that would respond to your product being open source, interoperable, or written in a niche language, this would be it.