HN user

vu3rdd

923 karma

https://rkrishnan.org

Posts39
Comments55
View on HN
www.cs.nott.ac.uk 10y ago

No Silver Bullet: Essence and Accidents of Software Engineering

vu3rdd
3pts0
www.youtube.com 10y ago

Erlang Factory 2016 keynote: Why functional programming matters?

vu3rdd
2pts0
groups.google.com 10y ago

Boringcc

vu3rdd
2pts0
www.radford.edu 10y ago

Why C and C++ are Awful Programming Languages (2010)

vu3rdd
9pts10
www.youtube.com 10y ago

[video] Legacy of Computers by Gerry Sussman

vu3rdd
1pts0
sfconservancy.org 10y ago

Exercising Software Freedom in the Global Email System

vu3rdd
2pts0
trevorjim.com 10y ago

Let’s sunset C/C++

vu3rdd
31pts128
alexey.radul.name 11y ago

On Good Software

vu3rdd
1pts0
pgmadblog.blogspot.com 11y ago

Doing a startup is like doing a Ph.D?

vu3rdd
1pts0
sohcahtoa.org.uk 11y ago

Old-school desktop using Debian Jessie

vu3rdd
58pts28
www.inf.ethz.ch 11y ago

A Plea for Lean Software (1995) [pdf]

vu3rdd
32pts3
leastauthority.com 11y ago

Simple, secure cloud storage

vu3rdd
7pts0
www.rumint.org 12y ago

Googling considered harmful – 2006 [pdf]

vu3rdd
2pts0
pub.gajendra.net 12y ago

The Tyranny of the Hollerith Punched Card (2012)

vu3rdd
36pts28
www.dreamsongs.com 12y ago

Mob Software: The Erotic Life of Code

vu3rdd
1pts1
mailpile.is 12y ago

Mailpile: a free software replacement for GMail

vu3rdd
1pts0
world.std.com 13y ago

Diceware: a method to pick strong, easy to remember passphrases

vu3rdd
1pts0
www.flipcode.com 13y ago

Five Ways I Improved My Coding Workflow

vu3rdd
1pts2
blog.racket-lang.org 14y ago

Racket submodules

vu3rdd
2pts0
www.softwarefreedom.org 14y ago

Microsoft confirms UEFI fears, locks down ARM devices

vu3rdd
9pts1
ebb.org 14y ago

Apple was the first GPL violator

vu3rdd
8pts8
lisp-book.org 14y ago

Looking at the bright side (Nick Levine on Lisp book project)

vu3rdd
1pts0
benno.id.au 14y ago

Distrusting git

vu3rdd
201pts130
people.xiph.org 15y ago

Listening tests comparing the new speech codec from Xiph with HE-AAC

vu3rdd
2pts0
nighthacks.com 15y ago

James Gosling joining Google

vu3rdd
223pts106
benjisimon.blogspot.com 15y ago

Using Technology to Flip the Classroom

vu3rdd
1pts0
dept-info.labri.fr 15y ago

What is wrong with Lisp?

vu3rdd
2pts1
article.gmane.org 15y ago

Guile 2.0 is out

vu3rdd
81pts42
symbo1ics.com 15y ago

Type Inference For the Uninformed

vu3rdd
4pts0
funcall.blogspot.com 15y ago

Why (not) to write factorial in Java

vu3rdd
4pts0

I have been reading it as well. For my taste, it is a bit too verbose.

I like to see something along the lines of the K&R book or the GoPL book. I was hoping that "Programming Rust" is such a book, but I was disappointed. And (may be it is just me) I like to see exercises in Programming books.

People who believe in these ideas are a minority, it seems. Every 'aptitude safe-upgrade' tells me that more and more disk space is required to install the packages.

OpenBSD project seem to be doing the right thing (as they always did, imho) by deleting a lot of code from the base and not letting it to rot.

Good points.

As a programmer, one has no choice most of the time on what language a program should have been written, in my career, I have mostly been modifying and adding code than writing new code from scratch. This mostly means C, for anything close to hardware, as electrical/electronics engineers are familiar with it. Another way of saying this is that, "I program in whatever language, my team is programming in".

Embedded systems also have size limitations and the problem of bootstrapping on new hardware. C has time and again proven to be easy.

If you examine a typical GNU/Linux distro, you see all kinds of programs written in C that ought to have been written in a type safe language because most of the time, C's features were not required for the program.

I wish more and more "new" programs are written in all kinds of languages (not just Rust, but in Python or Haskell or OCaml ..) other than C and that we restrict C to the things we really need it for.

Overall, knowledge of C is only going to help. Whether you want to use it to use it for your next project is something that depends on the problem at hand.

The essence of the language has not changed. But C99 came out with a few nice things. There is also C11 which brought in a few new things as well. It would have been nice to bring the book up to C99.

"Modern C" is a good book on some of the new features.

    http://icube-icps.unistra.fr/img_auth.php/d/db/ModernC.pdf

Why is it OK to lock down smartphones, TV devices, consoles, but not OK for PCs?

IMHO, it is not OK to lock down things you own. I have been a victim. I bought an AppleTV v2 and a planned obsolescence by Apple and Google rendered it useless (with a YouTube API version requirement).

PCs are special in that, they are general purpose devices and not appliances. If you are using it as an appliance, chances are, you are not interested in running another operating system on it.

I don't see how this message is reassuring. Are they expecting the customers to just take their word? Without Apple showing the world, every bit of software that they run on their phones, these statements are at best, meant to mislead the users that Apple is doing something on the user's behalf.

I forget where I read it, but it was many years ago. But paraphrased, it read "never believe anything you read in print". It was quite an eye opening statement for me.

Yes, indeed. Even with the 101 level haskell I write, it feels so right. I exactly know where the side effects are and the semantics of the program is so clear.

...fear that my program isn't abstracted far enough...

This. I feel exactly the same. I read various concepts like Free Monads, I go find papers and read them. But when I sit down to write code, my code is a blob doing IO. I can use State monads, StateT etc. But the result is not the elegant programs that I see on books and blog posts.

I am also very pragmatic. I want to build tools that implement an idea I have. I want to build as soon as possible to try these ideas out. But when programming in Haskell, I find myself code golfing and lost in the means rather than the ends.

I played with Racket and used to lurk on their mailing lists for many years! I haven't seen a friendlier community than the Racket community anywhere else.

DrRacket is a great environment to learn programming and play with various concepts, both for beginners and advanced users alike.

While what you are saying is very true, recent developments around systemd seem to have changed a few people to target linux-kernel based systems than the BSDs.

As the autoconf files suggest, a lot of GNU software was written in the most general way possible, targeting even the macos/osx/windows/aix/hpux etc.

In this age of easy virtual machine installations, it seems odd that software authors of popular software are not targeting at least the BSDs.

I think a lot of comments in this thread are too harsh. I am a C programmer myself and see the value of it in embedded systems, operating system kernels etc.

While it is possible to write correct programs in C and C++ (which are very different languages, but usually mentioned together because of their names and history), it is too easy to make mistakes that are not caught by the compiler. It is easier to be sloppy in C than in say, Go or Rust. I have seen this in my own code and also in others' code.

C is not the only way to write system programs. Oberon, Inferno are good examples of OS environments written in safer languages.

But I agree that some of the disadvantages of C are also its advantages.

The author of the blog post has more followup posts:

  http://trevorjim.com/why-safe-languages-are-the-best-way-to-achieve-memory-safety/
  http://trevorjim.com/an-unsafe-legacy/
  http://trevorjim.com/unsafe-at-any-speed/
[edit: fix typos, rephrase a few sentences, fix links]

To me, a fast bootup is a non-issue. I want "less magic" with my computers. I want to have control over my system. Surely it must be possible with systemd. But the good old sysv-init works for me and I am familiar with it. Shoehorning any system for every possible need is probably a bad idea. True with systemd and true with sysv-init or any system.