from Hacker News

Ask HN: C for Application Development

by edwinnathaniel on 4/15/20, 2:22 PM with 5 comments

Hi HN,

Lately I've been thinking to move "back" to C to build tools for my own personal use (fun, curiosity, and the urge to go back to basic).

At the same time too, lately I noticed that there were resurgent of C discussions/materials here and there. Not a lot, but there's definitely something brewing, something shaping up in the corner of C world to make the experience less painful and more "standardized" as-per modern software development practice.

A background to describe my experience: your typical "cloud" software developer (Java, Go at the backend. Understand design-patterns, enterprise architecture patterns, clean code and the whole shebang. JS at the front-end. K8S + AWS as-needed base. Python for small stuff).

What I'd like to pursue on my free time: FreeBSD (or Linux). C as application-development to start with (think of GTK+, small CLI tools). Eventually, I might want to dig deep and build (or extend/expand) infra-related software (think of network software, server software, system-level) but this is not the top priority.

If I want to start learning C today to satisfy the top goal: app-dev (GUI, Text-UI, CLI). How should I tackle C? Where should I start from?

Imagine I'm a typical Java-dev who enjoy streamlined experience:

  - Maven for project management
  - IntelliJ for IDE
  - JUnit for automation-test (integrated with IntelliJ)
  - Swing/JavaFX for Desktop-App
And also armed with your typical Java "best-practice" books like:

  - Effective Java
  - Fowler's Enterprise Architecture Patterns
  - Java-version of Design-Pattern
  - Uncle Bob Clean Code (just for SOLID principles).
I know that there are several books on "modern C" lately:

  - Modern C (Manning)
  - Head First C
  - Learn C The Hard Way
  - 21st Century C
If I can only purchase one C book for the purpose of my single goal: App-Dev. Which one should I go with first that hopefully covers software project management as well as "good practice".
  • by olkyt on 4/15/20, 2:59 PM

    "Build Your Own Lisp: Learn C and build your own programming language in 1000 lines of code!" http://www.buildyourownlisp.com/ not app, but fun
  • by dave84 on 4/17/20, 12:54 AM

    I honestly don't think the book you're looking for exists, "Learn C The Hard Way" is probably the closest but it's very opinionated and has its critics. The others, as most C books seem to be are concerned largely with the minutia of the language.