Re: [dev] Re: [RFC] Design of a vim like text editor

From: Jimmie Houchin <>
Date: Wed, 17 Sep 2014 09:28:41 -0500

On 09/17/2014 12:50 AM, Markus Teich wrote:
> Jimmie Houchin wrote:
>> I have been for the last several weeks (months) researching what language I
>> want to use to implement a couple of apps I want to do.
> What kind of apps are you planning to write?

What I am working on right now is a quantitative analysis trading
application. And in this field most use C++. However, this is for me and
my business in my spare time. So, language choice is my mine within the
limitations of the ability to use one of the brokers proprietary
libraries to connect with their server. Most brokers offer C++, Java and
.Net. I considered Clojure and Java. But I just struggle with the idea
of that Java elephant. I have never used a Java app that felt performant
or memory efficient or even memory reasonable.

>> So I have this internal debate in me as to whether or not to learn C and/or
>> C++. One one hand I tend towards C. But for someone who has spent the last 20
>> years using learning Python and Smalltalk. C looks pretty primitive. C++ looks
>> complicated. And C++ OOP does not look a thing like Smalltalk OOP.
> See the „primitivity“ of C as a benefit. In the beginning you may have to think
> a little harder to fit something into these „limitations“ but in the end it pays
> off, since you don't have to struggle with much OOP complexity when maintaining
> your code.

I won't argue with that. I know that their will be quite a different
mindset and model for programming. But as a long time Smalltalker
(Squeak/Pharo). I have struggled leaving Smalltalk. The Smalltalk
language and environment are very productive and very immersive. OO that
is much more functional than C++/Java, etc.

First I have to find a language I want to try.
Then I have to find an editor I like. In Smalltalk, the IDE, environment
and language are all together. Then possibly a compiler, debugger and
tool chain.

Nothing seems simple when leaving Smalltalk.

Then with your statically compiled languages. You have the fact that
there is no ad hoc explorability at all. Whereas with something like
Smalltalk, Python, Lua, Clojure, Julia, something with a REPL you can
dynamically explore. You can write your app. Run your app and then
explore your app and data live while it is running. Very powerful for a
large set of applications.

This is something not so obvious in C/C++ for someone on the outside
looking in.

This is why I am looking at learning Julia and C. Julia is not OO. Julia
is very strong in math, science, technical computing. Julia interfaces C
almost effortlessly. It is high performance and reasonably efficient.
Julia/C is a seemingly perfect fit for my app's domain.

Julia offers one of the best REPL experiences I've seen. For me this is
a big win.

>> The sticky wicket in their for me is that I must connect to either C++ or Java
>> libraries. One of my apps has a C wrapper around the C++ library. So any
>> language that can connect to C can use this library. But many of the required
>> libraries I need to use are in C++.
> Any C++ library that pretends to be sane also has C bindings.

I understand. However, nobody's pretending these people are sane. After
all, they did write it in C++ in the first place. :)

>> And neither natively provide the interactiveness of Python/Smalltalk. Which
>> is something I require. So I would need then to add either Python or probably
>> Lua into the equation.
> You could also try Go (, which has syntax similar to
> C/C++/Java, compiles to binaries, feels like python and allows for a very
> interestingly restricted way of OOP.
I have spent 20+ years avoiding C/C++. Always looking for the more
productive, faster to market, ... solutions. I sincerely regret not
learning C in the beginning. It has seriously limited my decisions.

I have decided I am going to correct that oversight. So much of what I
want to do interfaces C/C++. If your chosen tool hasn't already
implemented a wrapper around said C/C++ library it is then it is up to
you. If you don't have C skills. You are dependent upon someone who does.

For me this stops now. I am going to work on my C skills first. Before I
move on to Julia or whatever more "productive", more "dynamic" environment.

Because I am attempting to learn modern C. This is currently the books I
have that am working through.

C Primer Plus, 6th ed., Stephen Prata
21st Century C, 2nd ed., Ben Klemens
Understanding and Using C Pointers, Richard Reese

>> The reason I write, is that in my research for pros and cons of C verses C++.
>> Almost all of the anti-C++ writings are pre 2011 and therefore pre C++11/C++14
>> and the coming C++17.
> Did you check if the authors of the anti-C++ postings changed their opinion in
> 2011? They probably did not and their critic is still valid.
I don't necessarily agree. They may have the same opinions. But, that
doesn't mean that their arguments remain valid against "Modern C++".
Their arguments didn't address "Modern C++". So their document may still
express their opinion. Because they very well may still be anti C++. But
that doesn't mean they have one bit of knowledge of "Modern C++".
"Modern C++" being C++ according to the newest standards and used
according to the best practices proscribed by C++ advocates.

And even if they are expert in "Modern C++", their documents don't
address it. So, for those of us on the outside. It is unknown how in an
apologetic or debate they would address the points of the C++ advocate.

>> And Hi! First time poster to suckless. Thanks for having a group which fights
>> against the current direction in complexity in software.
> Welcome to sl, Jimmie.
> --Markus

Moving in a suckless direction is hard. You have to fight the entire

The state of Linux is exasperating. The systemd fiasco is frustrating. I
feel like I have turned around and am swimming upstream. I am learning
to use more keyboard and less mouse. More terminal/console and less gui.
But I am not ready for mutt and vim yet. Maybe someday. I do still like
some creature comforts.

Thanks for engaging in my questions. I appreciate input even when I
disagree. For what I disagree with today, may be what I agree with
tomorrow. Who knows. :)


Received on Wed Sep 17 2014 - 16:28:41 CEST

This archive was generated by hypermail 2.3.0 : Wed Sep 17 2014 - 16:36:07 CEST