HNHacker News
TopNewBestAskShowJobs

progman

571 karma · joined June 5, 2013

submissionscomments
progman··on Making a GTK Video Player with Haskell
Pascal (Delphi, Lazarus) and Visual Basic are exact counter examples. They demonstrate how easy and convenient GUI development can be.
progman··on Making a GTK Video Player with Haskell
The examples mentioned in the other posts confirm my impression that Haskell is a good language for text processing and server applications but a pain for writing rich desktop applications.

One of the things I miss in Haskell is a way to compile to C, and a convenient declarative GUI which also compiles to C so that all code can be linked together, and distributed as a single binary. The GUI doesn't need to be native. Lisp has its own GUI (McCLIM), Smalltalk has one (Squeak), Rust has one (Conrod), why not Haskell?

progman··on Why people believe in conspiracy theories – and how to change their minds
That's the point. You nailed it.

Many theories are wrong due to lack of knowledge which is substituted with suspicions. That's the reason why conspiracy theorists are ridiculed so often. Some conspiracy theories however are true. If Pulitzer prize winners Woodward and Bernstein hadn't believed in conspiracies Watergate would never had been discovered.

I am amazed that there are actually people right here who stubbornly reject the reality of conspiracies at all. Conspirators want people who don't believe in conspiracies since deceiving such people couldn't be easier.

progman··on Lispers
> Have you worked with Haskell professionally?

Not yet. I was seriously interested in Haskell. The cabal hell however put me back. Stack is interesting but installation from source is still troublesome.

I always want to be able to install my developer tools from scratch (by source only) since I want to make sure that I can port my software to new systems. Haskell's and Rust's way of installation (curl | sh) is convenient but inacceptable for porting. Nim's bootstrap from source (no dependencies except a C compiler) is the right way how it should be.

progman··on Lispers
You find many practical examples at planet.lisp.org.
progman··on Lispers
> Maintenance timesink might easily outweigh the gain in development time.

That is correct. However, in Haskell you need a lot of discipline to guide a big project in the right direction. Maintenance can quickly became a nightmare due to very dense code.

If maintenance is the main issue I would choose Ada than Haskell. I have no problem to understand my own Ada code written 10 years ago, even without documentation. In Haskell however I had problems to understand my own code which was just some weeks old :-)

progman··on Lispers
> it's still struggling to become production-ready

McClim is not a business case. It is just a project to revive the most sophisticated GUI for Lisp. The graphical shell [1] for instance which already works gives a remarkable impression.

[1] https://common-lisp.net/project/mcclim/static/media/screensh...

progman··on Lispers
You can add static type checking in Lisp anytime if you want. Consider the discussion at [1].

[1] http://compgroups.net/comp.lang.lisp/static-type-checking-in....

progman··on Lispers
Those amazing Lisp machines were far ahead of their time. Unfortunately the hardware was very expensive, and it lacked power. Today we have the right cheap hardware. Actually, there is a Lisp revival going on in the OSS community. Consider McClim [1] for instance which attempts to port the amazing GUI of the Lisp Machines to PCs. It already works.

[1] https://common-lisp.net/project/mcclim/

progman··on Lispers
> Many of the quotes makes me question the authors experience

Do you have enough experience that you dare to judge him?

> Compared to modern languages (say, Haskell), not so much.

I disagree. I was in a lot of languages, in all different programming styles. Lisp still is the language with a maximum of freedom of programming, probably also regarding productivity. Only Nim comes close.

Haskell may look elegant at the surface, regarding productivity however I don't recommend it except for DSL and compiler construction. If you are not a world class expert in Haskell then in most cases Haskell takes a lot more time for development than other languages (say Lisp, Python, C++, even Rust).

progman··on Give me 15 minutes and I'll change your view of GDB (2015) [video]
There are convenient graphical frontends for GDB. DDD for instance can create plots, diagrams, etc.

https://www.gnu.org/software/ddd/

progman··on Stagit – A static Git page generator
You can have something like that also in your shell. Just apply

  git log --reverse | perl githead.pl
where githead.pl is

  my $date, $old; while (my $line = <>) { chomp $line; next unless $line; $date = "$1 $2 $3" if $line =~ m|Date:\s+(.+?)\s+(.+?)\s+(.+?)\s+|; if ($line =~ m/^\s+/) { if ($date ne $old) { printf("%-10s%s\n",$date,$line); $old = $date; } else { printf("%-10s%s\n",'',$line); }}}
progman··on Remacs – A community-driven port of Emacs to Rust
I agree. The attempt to port Emacs in Rust is honorable. However, I believe a successful port does not depend on a safe C backend. I am a long-term everday emacs user, and I didn't have a single segmentation fault in emacs in all those years. Actually, emacs is the most reliable PC software that I ever encountered. Code safety is not an issue at all here. Emacs is heavily based on Lisp which leaves almost no room for segmentation faults.

IMHO, a potentially successful Emacs ports depends on a new plugin system which supports code in other languages (Rust for instance) rather than elisp so that new developers get attracted who dislike Lisp. In other words, don't attempt to clone emacs but develop a completely new editor which uses the successful concepts of Emacs.

Unfortunately, plugins require dynamic code generation, and AFAIK only scripting languages like Lisp, Scheme and Python are able to do that. Emacs has that already. Emacs's plugin system has an unmatched simplicity and reliability, and that's likely the reason why any clone has a very hard time to compete.

progman··on Is Ada a failed language?
People who avoid GPL in general don't understand how GPL works. They don't realize that only changes of the GPL software needs to to published on request. For instance, if they change something in the GtkAda library to make their software run then they must publish those changes on request. Their own proprietary software which links to the GPL doesn't need to be published. However, if they take a large part of the GPL software to modify it, and sell it as their own software then they have a problem. GPL was invented to prevent such abuse.

Regarding the other points, I have the impression that Ada is much easier to handle than Rust, hence Ada code is easier to maintain. Package managers are not always a blessing. Haskell's cabal hell demonstrated that the usability of package managers is questionable. As for me, I prefer the "dumb" configure - make - make install tool chain since it follows the KISS principle. In most cases it just works.

progman··on Nim Programming Language v0.17.0 released
> Speed isn't necessarily one of the reasons for native.

And how it is!

I don't understand why people consider Java "fast". The JVM may be fast on pure server applications. On clients however it is still unacceptably slow in comparison to native applications. Just consider Eclipse and compare it with Ada's GPS editor, or with native C++ IDE's. The startup time of Clojure applications is also still beyond acceptance for me.

I know a lot of programming languages. Nim is one of the most productive ever. It is like safe programming C with the clean syntax of Python and the nice macro features of Lisp.

progman··on Two years of Rust
Congratulations to the Rust team for the great work!

The impact of Rust on the programming safety community has grown so big that even hardcore Ada developers are getting really nervous about Rust's powerful competition.

https://groups.google.com/forum/#!topic/comp.lang.ada/H35QcY...

Although Nim and Lisp are still more productive than Rust for my use cases -- Rust really needs a convenient edit-compile-debug cycle, and also an easy bootstrap from source mechanism -- I am watching Rust's development with pleasure.

I am pretty convinced that within the next ten years Rust will not only cause a serious decline of C++ but also eat a big portion from Ada's lunch in safety critical applications.

progman··on Lisp Meta-Programming for C++ Developers: First Macros
Side effects are no issue if every local variable name in a defmacro is generated with (gensym).
progman··on Unix Is Not an Acceptable Unix (2015)
What's the problem with all those options? IMHO ls is not bloated at all. It simply follows the Unix philosophy: Do just one thing, and do it "right" which means: do it as well as possible. ls actually does that. I never had any desire for another ls because ls already gives me almost all possible functionality. I am glad that I have all those options so that I don't have to write my own tool to get a special function if I really need that.

If you don't need all the options, ignore them. If ls is too complicated for you then do just as the author recommends: "write a simpler alternative to ls", and name it lf ("list files") or the like.

progman··on Unix Is Not an Acceptable Unix (2015)
McCLIM is an attempt to revive the awesome GUI of the Lisp Machines. There is no need to invent special data interchange formats like XML or native blobs since Lisp uses simple lists as AST.

https://common-lisp.net/project/mcclim/excite.html

progman··on LaTeX Tooling Guide
Or you can use TeXmacs [1], enter such arrays in WYSIWYG and export to LaTeX.

[1] http://texmacs.org/tmweb/home/screenshots.en.html

progman··on C++ 17 is Done
Crashes due to the language implementation's fault are much more likely in C++ than in Ada. Ada compilers are 100% verified, otherwise they are not allowed to call themselves "Ada compiler". There is no such thing for C++. The safety gap between C++ and Ada is actually so big that we don't even need to talk about that.

The flaws C++ were the reasons why Rust was invented. Mozilla wanted a safe language for the next generation of browsers, and they realized that C++ is not a good choice for safe programming.

Quote: "Mozilla intends to use Rust as a platform for prototyping experimental browser architectures. Specifically, the hope is to develop a browser that is more amenable to parallelization than existing ones, while also being less prone to common C++ coding errors."

Source: https://www.quora.com/Why-is-Mozilla-developing-the-Rust-lan...

progman··on C++ 17 is Done
This was not Ada's fault but the developer team's fault since it used a working Ariane 4 software for Ariane 5 without exhaustive testing. They made the mistake, and blamed Ada for that. The Ada software worked perfectly for which it was written for.

http://compgroups.net/comp.lang.ada/ariane5-faq/1406823

And yes, Ada is still used today.

http://www.ada2012.org

progman··on Red programming language 0.6.2: LibRed and Macros
I consider Nim's approach an advantage since it prevents nasty confusion by accidental typos, in particular in big projects with many modules.
progman··on C++ 17 is Done
C++ and C will still remain alive for a long time. C++ for reason of legacy code in business, and C for its unique feature of being the standard "high level assembler". There is always at least a C compiler available for every new platform.

I believe that Rust has the power to take a significant part of C++ in coming years. Maybe that also Ada will increase due to the rise of public interest in code safety. C will remain as it is because there is no easier way to port system software to new platforms.

progman··on C++ 17 is Done
Yeah, C++ has that. Other languages - Ada and Rust for instance - don't need that. If you are concerned about code safety then C++ is not a good choice.
progman··on C++ 17 is Done
> I suppose it's good for job security...

Honestly, I've seen C++ code so muddled and obfuscated that I actually wondered if those devs just wanted to make themselves indispensable. I really dislike such an attitude.

progman··on C++ 17 is Done
> I just don't think there's a viable alternative

If C++ is your only hammer then every problem looks like a nail to you. Of course, there are viable alternatives. At least Ada which is still used in avionics and other safety critical systems.

progman··on C++ 17 is Done
> Complexity is good

I believe in exactly the opposite. I always try to follow the KISS principle (Keep it simple, stupid) whenever possible since it always turned out to be the most reliable and maintainable solution.

It is funny that the first Ada versions (93 and 95) were considered vastly more complex in comparison to C++ in those days. Today it's the opposite. Ada looks like a clean mature language which only adds features which are actually needed. C++ wants to copy everything, attempting to squeeze every new feature into its narrow syntactic framework while still suffering the legacy of C and old C++ for reason of compatibility.

The only reason (IMHO) to learn C++ today is for maintaining legacy code in business. In all other cases there are better typed languages - Ada, Rust, and Nim for instance.

C++ may look nice at the basic level. As soon as things get serious C++ devs have a tough time. How does the experienced C++ dev fight that? He looks into his long list of tips and nostrums which hie collected in all his years to avoid all the pitfalls and minefields of C++. I don't believe that will change significantly with C++17.

progman··on Cross platform GUIs and Nim macros
Nice! Is there also a way to print the text? I just get almost empty pages.
progman··on Cross platform GUIs and Nim macros
Thanks for pointing this out. It is really good and important to know Ada's weak points. OTOH I agree that there is a great deal to like.
← PreviousPage 3 of 14Next →