Best of C ProgrammingJanuary 2025

  1. 1
    Article
    Avatar of cybertec_postgresqlCYBERTEC PostgreSQL·1y

    PostgreSQL Development Introduction

    This post provides a comprehensive guide for absolute beginners on how to contribute to PostgreSQL development. It covers how to compile and install PostgreSQL using different build systems (Meson for version 16 and newer, GNU Autoconf for version 15 and older), set up a development environment, and create custom extensions. The guide walks through essential commands, environment setup, and debugging techniques, emphasizing the importance of understanding each step and practicing by breaking and fixing code.

  2. 2
    Article
    Avatar of the_react_communityThe React Community·1y

    Neotasks OSS - An in-development task manager

    The author is developing a task management application called Neotask, inspired by Trello but with additional features. It's being built using React, with the backend yet to be decided, possibly in C++ or Rust. The design uses the Catppuccin color palette.

  3. 3
    Video
    Avatar of codinggopherThe Coding Gopher·1y

    Why You’ll NEVER Become a Senior Engineer Using Python

    Senior engineering in software development requires in-depth understanding of underlying system mechanics like memory management and data alignment, which languages like Python often abstract away. Exploring C language and its functions like malloc, which dynamically allocates memory on the heap, reveals the complexities of managed and unmanaged memory, alignment, and system calls. These insights are crucial for writing optimized and performance-conscious code.

  4. 4
    Article
    Avatar of hnHacker News·1y

    Understanding Memory Management, Part 1: C

    The post provides an in-depth exploration of memory management in C, highlighting the challenges and intricacies involved. It explains how programs use memory, the conceptual differences between the stack and heap, and how memory allocation and deallocation work using functions like malloc and free. The post also covers common pitfalls such as memory leaks and use-after-free bugs, offering practical coding examples and strategies to manage memory effectively.

  5. 5
    Video
    Avatar of gamefromscratchGamefromscratch·1y

    C++ Game Engines in 2025

    This post provides an in-depth review of various C++ game engines available in 2025, including popular choices like Unreal Engine and lesser-known options like Flax and Wicked Engine. It includes both 2D and 3D engines and discusses their features, licensing, and suitability for different types of game development projects. The post also touches on upcoming updates and the history behind some engines.

  6. 6
    Video
    Avatar of tsoding_dailyTsoding Daily·1y

    This Library Turns C into Go

    Libmill is a library that brings Go-like concurrency to C. It uses coroutines and channels to simplify concurrent programming and provide an efficient event-driven model. Despite being almost a decade old and minimally updated, it remains functional and can handle tasks like networking effectively. The library presents a macro-based approach to creating coroutines, similar to Go's goroutines, which is integrated directly into C code, allowing tasks such as I/O operations to be handled asynchronously.

  7. 7
    Article
    Avatar of c_communityC/C++ Community·1y

    Understanding Header Files in C++

    Header files in C++ are essential for organizing code, promoting modularity, and reusability. They store function declarations, macros, and class definitions, separating these from implementation details in `.cpp` files. Proper usage through header guards or `#pragma once` prevents multiple inclusions. Advanced concepts include using structs and vectors in headers, creating header-only libraries, and the emerging use of C++ modules. Key practices involve keeping headers lightweight, minimizing dependencies, and considering future-proofing with C++ modules.

  8. 8
    Article
    Avatar of infoworldInfoWorld·1y

    Why the C programming language still rules

    The C programming language, despite being developed in 1972, remains a cornerstone in software development due to its performance, bare-metal compatibility, and widespread use. It is often compared to newer languages like C++, Java, C#, Go, Rust, and Python, each of which offers unique advantages and use cases. While other languages provide higher-level features and ease of memory management, C continues to be favored for its minimalism, direct memory access, and efficiency in resource-constrained environments.

  9. 9
    Article
    Avatar of c_communityC/C++ Community·1y

    Free resource to learn C/C++ especially for Linux Kernel development

    Looking for recommended resources to learn C/C++ specifically for Linux Kernel development, with a basic understanding of the syntax for both languages.

  10. 10
    Video
    Avatar of primeagenThePrimeTime·1y

    It's Really Just That Bad

    This post critiques a recent benchmark comparing various programming languages, highlighting flaws in methodology and validation. The discussion centers around the Levenshtein distance algorithm and notes how inaccuracies in the benchmark can lead to misconceptions about performance. It emphasizes thorough validation and analysis in benchmarking to avoid misleading results.

  11. 11
    Video
    Avatar of lowlevelgamedevLow Level Game Dev·1y

    5 things I wish I knew before starting C++ Game Dev!

    Learn valuable tips for starting game development with C++, including searching for good teachers on YouTube, keeping things simple by avoiding complex C++ features, and using libraries like Raylib or SFML to help with graphical development. Understand the importance of seeking harder projects to grow your skills and get recommended resources to make your first C++ game.

  12. 12
    Article
    Avatar of hnHacker News·1y

    Writing a simple pool allocator in C

    Pool allocators provide a high-performance, memory-efficient way to manage memory in C, offering O(1) allocation and deallocation of fixed-size chunks. This guide covers the initial and expanded implementations of a pool allocator, detailing structures, functions, and considerations for resizing pools without modifying the array. The system allows fast allocation and deallocation, making it suitable for scenarios requiring frequent memory operations.

  13. 13
    Article
    Avatar of c_communityC/C++ Community·1y

    What should I build?

    The author seeks advice on creating intellectually challenging C programming projects that are relevant and impressive for a resume. They have experience with class projects like a lexical analyzer in C++ and a puzzle-solving algorithm using A* in C, but are looking for more advanced and cross-functional project ideas to further develop their skills.