Every now and then, I collect programming quotes I like into blog posts. Here are some from the sixth installment: “Configuration is coding in a poorly designed programming language without tests, version control, or documentation.” Gregor Hohpe “It’s the developers misunderstanding, not the expert knowledge, that gets released in production” @ziobrando And I think this is pretty funny: “What’s the difference between C and C++? 1” Unknown
Henrik Warne’s Post
More Relevant Posts
-
Michael's Programming Gems, #2 Good Variable Naming Single letter variable names tend to be a symptom of bad programming. Why? * They can be hard to distinguish, * They can be ambiguous, * They can be non-descriptive. Here is an example of a classic binary search with horrible variable names vs good naming (along with better formatting.) * Lowercase "L" can be hard to distinguish between "one", so avoid it. * The variable "m" is also bad -- does it mean middle, minimum, maximum, median? * Using the names "needle" and "haystack" makes it more obvious that these are key/values instead of the non-descript "t" and "x". * We can also multi-column multi-line alignment to fit all three tests in a nice, compact, readable "table" format. Notice how it becomes obvious that the search is based around using mid for updating min and max. * We can also take advantage of the unorthodox "comments in the middle of an expression (!)" to tell the reader what the three tests are.
To view or add a comment, sign in
-
-
Concept-Based Generic Programming in C++ (Bjarne Stroustrup) (www.stroustrup.com) ======== Columbia University Abstract We present programming techniques to illustrate the facilities and principles of C++ generic programming using concepts. Concepts are C++’s way to express constraints on generic code. As an initial example, we provide a simple type system that eliminates narrowing conversions and provides range checking without unnecessary notational or run-time overheads. Concepts are used throughout to provide user-defined extensions to the type system. The aim is to show their utility and the fundamental ideas behind them, rather than to provide a detailed or complete explanation of C++’s language support for generic programming or the extensive support provided by the standard library. Generic programming is an integral part of C++, rather than an isolated sub-language. In particular, key facilities support general programming as well as generic programming (e.g., uniform notation for types, lambdas, variadic templates, and C++26 static reflection). Finally, we give design rationales and origins for key parts of the concept design, including use patterns, the relationship to Object-Oriented Programming, value arguments, notation, concept type-matching, and definition checking Read more ... http://bit.ly/48YGk9O
To view or add a comment, sign in
-
-
💻 Multi-Paradigm Programming with Modern C++: Flexibility Meets Power 🚀 Modern C++ is a multi-paradigm programming language that empowers developers to use the best approach for the problem at hand—whether procedural, object-oriented, or functional programming. This versatility helps write efficient, maintainable, and scalable code. Key paradigms in Modern C++: 🔄 Procedural Programming: Organizes code into functions and procedures in a top-down manner. Ideal for simple, linear tasks. 🧱 Object-Oriented Programming (OOP): Models real-world entities with classes and objects, enabling encapsulation, inheritance, and polymorphism for modular, reusable code. 🧮 Functional Programming: Focuses on pure functions, immutability, and higher-order functions like lambdas, improving code clarity, concurrency, and mathematical computations. Modern C++ Enhancements include: Smart Pointers & RAII: Automatic and safer memory management to prevent leaks. Move Semantics: Efficient resource transfer without unnecessary copying. auto Keyword & Range-Based For Loops: Cleaner and more expressive syntax. Modules & Concepts: Better code organization and type constraints. Lambdas: Inline anonymous functions for elegant and concise functional programming. By leveraging these paradigms and features, C++ developers can create high-performance applications spanning systems programming, game development, financial systems, and more. How do you use multi-paradigm programming in your C++ projects? Share your experience! 👇 #ModernCPP #Cpp #ProgrammingParadigms #ObjectOriented #FunctionalProgramming #SoftwareDevelopment #Tech #INFOSIS #COURSE
To view or add a comment, sign in
-
then there's the programmers. the complaints about vibe programming and so on. llms have turned programming into magic. we are truly wizards now. but just like spells in d&d, we still need to say it right. follow the rules. etc. why are you fools expecting it to come out perfect on the first shot? not a single one of you has ever written a perfect line of code on the first try. that's why we have debuggers, tests, planning. you pretend that llms are at fault when the truth is you threw away every tool you learned to lean on. the truth is llms can and do greatly speed up development. it's only when you stop being intellectually honest and start being ridiculously lazy that you end up with issues. since when did we scoff at tools? we literally use a tool to make us super powered. that's our entire job! so, instead of whining, do what we've always done. solve the fing problem. but I say we do one better. drop the llms except at the edges. we can have pattern machines which build software without the guessing.
To view or add a comment, sign in
-
What we do want from a good programming language is NOT Only blazing fast executable Speed.. 1- A good & mature ecosystem 2- Excellent in debugging showing errors both in compile time & easy to track runtime errors. 3- Fast enough executable & Fast calling to C, native, etc. 4- Fast to typing & fast to develop in a right mind way that makes it maintainable code with good discipline 5- Be Simple. 6- Stability
To view or add a comment, sign in
-
💻 Today’s Coding Practice — Count Binary Strings 🔹 Problem: Given a number n, find the total number of binary strings of length n that do not contain consecutive 0s. Example: For n = 3, valid strings are → 111, 110, 101, 011, 010 → ✅ 5 total 🔹 Approach: We use Dynamic Programming — Let: old0 = number of binary strings ending with 0 (no consecutive 0s) old1 = number of binary strings ending with 1 Transition: new0 = old1 → if we place 0, previous must be 1 new1 = old0 + old1 → if we place 1, previous can be 0 or 1 Final answer = old0 + old1 🚀 Concept Used: Dynamic Programming (State Transition) 💡 Key Idea: Build results for n using results of n-1. #DynamicProgramming #Java #CodingPractice #DSA #100DaysOfCode #ProblemSolving
To view or add a comment, sign in
-
-
💻 Project Showcase: My First C Project — Address Book Management System I’m excited to share my first C programming project — Address Book Management System 🎯 Developed entirely in C, this project helped me dive into structured programming, modular design, and real-world problem-solving. 🧩 Project Overview: The Address Book allows users to manage contacts efficiently: ✅ Add new contacts ✅ Search existing contacts ✅ Edit contact details ✅ Delete contacts ✅ Display all saved contacts ✅ Load and save contact data from/to a file Each contact stores: Name, Phone Number, and Email ID. Since names are not unique, the program lists all matching contacts when editing or deleting, allowing users to select which one to edit or delete. 🔹 Technical Highlights: Fully implemented in C using modular programming (.c and .h files) File handling used to load existing contacts at startup and save changes on exit Menu-driven interface for smooth navigation Uses functions, loops, conditionals, and string handling Focused on clean code, reusability, and user-friendly interaction 🚧 Key Challenges & Solutions: Handling duplicate names → solved by listing all matching contacts for selection during edit/delete Ensuring valid input and avoiding errors → solved with input checks and string comparisons Loading and updating data from file safely → solved by carefully reading/writing contact records and validating input ✨ What I Learned: Core C programming concepts in practice Writing modular and maintainable code Handling user input validation and duplicate entries Working with file I/O to persist data Designing structured, interactive console applications from scratch Starting with this project gave me hands-on experience and confidence in C programming, laying a solid foundation for more complex projects. #CProgramming #FirstProject #ModularProgramming #FileHandling #CodingProjects #SoftwareDevelopment #ConsoleApplication #ProgrammingJourney #LearningByDoing #StudentProject
To view or add a comment, sign in
-
💡 How the Range-Based For Loop Makes Your C++ Code Cleaner and Simpler In C++, we’re always looking for ways to make our code more readable and efficient — and the range-based for loop is one of the features that really helps with that. Instead of using the traditional for loop and dealing with indexes or iterators, the range-based loop lets you focus directly on the element itself, not its position 👇 vector<int> numbers = {10, 20, 30, 40}; for (int num : numbers) { cout << num << " "; } This code prints all the numbers easily, without worrying about array length or iterator syntax. ✅ It makes your code: Cleaner and easier to read. Less error-prone. Faster to write and maintain. In short, the range-based for loop isn’t just a new syntax — it’s a smarter way to think and write modern C++ code. #Cplusplus #Programming #Developers #CleanCode #SoftwareEngineering
To view or add a comment, sign in
-
-
Master the Basics of Programming Every expert coder started with one line of code “Hello, World.” If you’ve ever wondered how computers understand us, this guide breaks it all down. 👉 Learn what computer programs really are, how programming languages work, and why C++ still leads the way. 🚀 Read the full article: 🔗 https://lnkd.in/dZpuusfm #ProgrammingFundamentals #LearnToCode #Cplusplus #ComputerScience #TechEducation #ElecturesAI
To view or add a comment, sign in
Full stack Node/React enterprise app builder
8moI guess there is a divide over this (surprise, surprise), but to me, configuration is so inferior to programming that it should be minimized as much as possible. Gregor is a genius.