Aw man I was gonna hold up SICP as a counterexample. I think it was needed for operator overloading. I suspect this might be due to recent hacker news changes related to comments. :-). I try to comment my code in a similar way, often ending up with up to 30% comment to code ratio. It may be wishful thinking, but what if someone attempts to quantify all the C/C++/Java/Perl hacks from history because of this post? The SNES uses a 65816-based architecture running at ~3MHz that's extremely hard to compile C down to while still getting acceptable performance/code size - almost all games for it were coded in assembly language. msys2 just tends to work. But to be fair, it is far easier to find new languages and tools today than it was pre-internet. C was my fourth language after BASIC, Pascal and 6502 Assembler. Just skimmed real quick. Zed Shaw is sometimes a bit controversial but he wrote a "learn c the hard way" (or something similar) that aims to obsolete K&R. How is this obvious, since it is incorrect? Does the book cover the -> operator? Like it says, short lived stuff can be named "x" or "i". Would that help? Other books could help to provide a more modern take on how to adapt the language to 2020, but the original K+R book is still the best way to really learn the language. When men are outraged about literally anything, no matter how trivial (and this is very trivial), it's always perfectly justified. I have it on the bookshelf but haven't consulted it for many years. I can imagine cost and long being adjectives for the noun int. Clear. Fwiw, my take is that outrage culture has gone too far... maybe its time to play their game. foo is a pointer to an int that is constant. Posted by. It should be in the source of your c runtime library (just look at any of the open source ones) with different versions for each architecture and with slight variations for the os. It's certainly not insular or community destroying - an accusation like that is simply hyperbolic. I'd definitely recommend it as a first introduction to C. I'm not a fan so far. Hacker News Papers New 2020 2019 2018. Note that msys2 isn't just for building programs, it provides a full bash environment with many unix tools and a package manager (pacman, same as in Arch Linux) to install more. Personally, I dislike it and hold a dim view of it; but I can't speak for others. However it does teach a C that is not really used in the wild. Other, like buffer overruns, are easier to avoid with things like spans and ranged-for loops. http://port70.net/~nsz/c/c89/c89-draft.html, http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf, http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. Used it in college about 8 years ago. Far worse things are said about women all over the web all the time. It does say it explicitly, just using other terminology than "compile" (opting instead for "translate"). Thanks, this is really useful info for someone who wants to learn C coming from Pyhon, etc. You probably don't hate Latex typesetting. If you're not doing safety work, the Linux kernel is a great example of 'nice' modern C. https://github.com/BoschSensortec/BMP280_driver/blob/master/... Because there is nothing inherently modern about this code, this is how C has been written for decades if not from the very start (I think you will struggle to find patterns in this code that are not covered by KnR). AFAIU C++ will require that you initialize the members in the same order as defined. (A decent (SSA-)optimizing compiler will produce identical code with and without the declaration.). I don't use Github much. I remember back in the day sites saying "click on the ads - it helps us" but I don't think that's a thing any more. some of his concepts end up pretty neat. All it prevents is accidental reuse of current_foo, which may have some value. This was originally a comment about a book I thought was the same but merely had a similar title. For instance, if I'm just walking arena-allocated memory, the borrow checker does nothing for me. (Separately at each level of parenthesization, if any, working inside out.). Come now. C declarators cannot in general and do not follow English grammar rules, so that is a non-sequitur. When writing C you learn a lot about what a computer actually does, whereas with Rust you're working with an abstract system. ILP doesn't matter because the HW has kept the same basic ISA with the same memory guarantees since forever. https://uefi.org/sites/default/files/resources/UEFI%20Spec%2... https://andrewkelley.me/post/unsafe-zig-safer-than-unsafe-ru... https://www.actian.com/analytic-database/vector-analytic-dat... https://gforge.inria.fr/frs/download.php/latestfile/5298/Mod... https://floooh.github.io/2018/06/17/handles-vs-pointers.html. C is a language to make the computer do what you tell it to. Feel free to join in because that’s one of the things I will be talking about. 1. I take it there is no C17 compliant compiler yet? So there wouldn't be anything specific for embedded, you can apply the same testing practice as other systems where you ensure you abstract out the functions in such a way that the logic can be tested. And the point is the double standard. There are loads of things that could be done to improve debugging that doesn't require the language to change or to slow down the release runtime. I am sensing a confusion. A new edition of the book Modern C and much more are now available under a CC license via the following page. C is 47 years old. Sure, then C will become just as slow as other languages, but you can now find and remove the silent bug. Contribute to pbteja1998/hacker-news-client development by creating an account on GitHub. I just don't see this complaint as valid. My first thought reading that even men! Relative to other books in the series, or do you object to the "historical fashion" style book covers that publisher tends to use? How can we end toxic masculinity if we cannot tolerate male fragility? Thank you! Not really; C has a number of things that C++ never adopted such as restrict and partial structure initialization (although this might be coming to C++). No "int const", no i[array] instead of array[i], no deceptive trompe d'oeil nonsense like: When we write code, stuff that looks weird should signal a bug. I don’t self-promote usually, but I asked some people on Reddit[1] if they would like an educational stream on embedded systems, and a lot of people said yes. [1.5]: https://web.archive.org/web/20200901014356/https://wiki.osde... [4]: http://www.cs.cmu.edu/~ralf/files.html, [5]: https://github.com/safayetahmedatge/efitutorial. never talked about "quality" or "comprehensiveness" of the specs. (mostly interested in the graphics/audio realm). https://www.amazon.com/dp/0321928423/ref=cm_sw_r_cp_api_i_bg... https://www.vice.com/en_us/article/wnj43x/gods-lonely-progra... https://gustedt.wordpress.com/category/c/. Also the exercises were... very involved for just trying to learn potentially simple points. I've been programming C daily for 25 years. And despite that "distance" there is virtually no difference between C's and C++'s (and often Rust's) performance. Source: I have worked with them. Hacker News Papers New 2020 2019 2018. I honestly don’t know. It's bad cosmetic. Indeed, C11 and C18 don't bring a lot. However, I did have an eight year stretch of using C++ at SAIC and later for PacBell, Disney and Nintendo projects. The attacker can potentially hack such equipment to receive the AIR-FI transmissions from air-gapped computers." const-qualified pointers are largely useless. This is silly. That's awful lot to infer about someone from one sentence. "baked into the binary" covers a lot of ground. https://web.archive.org/web/20181230041359if_/http://www.ope... https://old.reddit.com/r/embedded/comments/ilgyun/would_you_... https://web.archive.org/web/20200901014356/https://wiki.osde... https://github.com/safayetahmedatge/efitutorial. Can't "C is a compiled language" and "C is a interpreted language" both be true independently? IMHO, the phrase “C is a compiled programming language” is super confusing. How many times have people written code like: FWIW, I find that form quite useful for defining short aliases, e.g. A little off topic, but that is some terrible art on the book cover. I don't want to pay $48 for something that will be "thrown away". I guess that printing an individual book with quality binding would be much more expensive than Manning's bundle. that would not be perceived as a minute poke at the female ego. If you're coming from COBOL and wanting to learn C (like the target audience at the time the book was written) ok perhaps it is a good book for you. Explanation of jargon seems to take priority over explanation of the language - the term "string literal" is explained before the concept of a function. It's a pain point for FFI. To clarify, by parent I was referring to the original commenter who made the parent comment to yours. Thus it had an anti-climactic effect for me -- I expected that deferring the discussion of pointers for so long would have some kind of pedagogical payoff, but there wasn't anything to it that, to me, justified putting it off for so long. what about jits? I wish they did, but they don't. I've never seen a man page with "int const". Working at Bell Labs in the 70s/80s must have been interesting. There are numerous occurrences of this involving arrays declared at file scope, like this: Let's relax that and allow a space or tab [\t ]. GCC 8 and above support C17, and there is a version available for Windows. In terms of overall language design and semantics, Rust owes a lot more to ML. I wouldn't be surprised if there was a sale on Monday. A language called clay was basically this. And has never been updated ever since. The vectors are a table that must be placed in a specific location in memory and are used by the CPU to know what code to execute when certain events occur. Academics from École Polytechnique Fédérale de Lausanne (EPFL) disclosed a security vulnerability in Bluetooth that could potentially allow an attacker to spoof a remotely paired device, exposing over a billion of modern devices to hackers. And "We define variables as close to their first use as possible". If you want to begin with what your outcomes could look like if you use TeX and friends, as suggested by jkepler, see here - [1]. As someone who learned C at the time of the first edition of the K&R, "21st Century C" would be more useful if I ever had to code in C again (which hopefully I won't). Can anyone recommend some of these for my background? CNET news editors and reporters provide top technology news, with investigative reporting and in-depth coverage of tech issues and events. C still has a place, but since the … It's just that the syntax is hideous, especially templates. I personally usually use Latex for short articles and Context for books. In the others, there is no reason why it would need to re-use the class destructor. "Secure Coding in C and C++, Second Edition". That's it. I agree. None of the pdf-to-html generators work well, and as a result the most up to date version you can conveniently view in your browser is C99. Not sure what the siblings are on about. example: "const int * foo" > you actually put EFFORT in finding something. Since everyone is recommending other resources, here's some C developers whose code I enjoy very much (or just really like the software they created with C): Just want to add and let people know that antirez (creator of Redis) writes so many insightful code comments that you almost always learn something new when you go through his projects. So there is no debate to be had there. Like French: In French it can be either left or right depending on the word: I'm perusing the Takeaways highlighted in yellow; there are multiples per page. Sure, except for the part where C is a language that uses English or English-based keywords, designed by native English speakers. Then you expect wrong, at least about Database Management Systems. > Languages are a specification, and an implementation working together in perfect harmony, with absolutely no undefined behaviour at all, yes, keep walking now. People do that if such a type is used a lot but probably not if it's just a one-off, just like when they write a function instead of using the same snippet a lot but don't if it isn't. On the other hand, pretty much every kernel has a C API. Many compilers also ship with verifiers for undefined behavior which has saved me a couple of times. That's what I used first. https://www.oreilly.com/library/view/secure-coding-in/978013... https://www.packtpub.com/product/extreme-c/9781789343625. C could have an optional bounds checking mode. 4. That being said, there are books that cover relatively new developments in the C language and its ecosystem, such as "21st Centry C" by Ben Klemens (but even this book is something like 5-10 years old). For me, a lot of C didn't really click until I read that book. I don't think anyone has attempted to compute the amount of money spent on buffer overflow hacks. I like that it includes books to avoid, and ideas for further topics. It's highly compatible with C, has container types, ranged for-loops, operator overloading which makes use of container types more sugary. "Compiled" traditionally means "not interpreted", or rather "compiled to machine code". I can also recommend Deep C Secrets. I stopped using C largely by accident: everyone who paid for my work wanted Common Lisp or Java, and that lasted until the start of the deep learning craze seven years ago. Read more. I really love Rust these days, but there's no denying that it's a much more complex language. However it has gotten so deep into IT infrastructure, thanks to the hegemony of UNIX/POSIX clones, that even if starting today no more greenfield software would be written in C, and its copy-paste compatible languages, Objective-C and C++, it would take generations to clean it up and it would never be 100% replaced, as proven by mainframe environments and their languages. I know that, unlike "Modern C", "21st Century C" can't possibly cover C17 because that book was released in 2014. A Self-Learning, Modern Computer Science Curriculum. But I would be wrong. Depends where you are, Waterstones (UK) has it available for pre-order (where I have ordered mine from): On a related note, do we have any fully complaint C11 compiler for MS Windows or is using gcc under WSL (or a VM) the best option? You can just use features of C++ which improve the ergonomics of C; it's not necessary to buy into modern C++ wholesale. And arguing against it is an exercise in personal experience I assume (you have C interpreter experience I wager?). At least one (GNU C Library) has repeatedly rejected proposals for inclusion [...]", "[...] As a result of the numerous deviations from the specification the Microsoft implementation cannot be considered conforming or portable.". Your response is an instance of the naturalistic fallacy. And hey, I know that sounds extreme - but there really are situations of "unless you absolutely have to" but I wouldn't expect anyone to write a brand new queuing system or database in C or C++ anymore given the alternative languages available. Does it mention free and realloc? (Nor is the conclusion particularly profound or useful: comparing languages by an attribute in cases where they have said they explicitly do not guarantee semantics of that attribute-safety in this case-is not useful.). Hundreds of in-flight instructions does not matter when they all commit in order. It's provided a bit of benefit, but it's underused, and it's too soon to have a good sense of long term impact. So it's weird for you to take what little commentary there is and shoehorn it into 'minute poke at the male ego'. Libc talks in C, most of the other libraries talking for interfacing with the kernel talk in C. The kernel speaks it's own language that has no special relation to C at all. An explanation of why you didn't like it would be more helpful. The terseness is one issue, but the security problem is that it implements strcpy at all without warning. After the 90's, they truly were a breath of fresh air. Every other C book seems to disagree, but OK. that such a statement will bring them favour. To experience it, just download the ~12mb For example MISRA C. There is also the JPL C Coding Standards, which are based on MISRA and are freely available. > There was also an article about this in which the author said that "unsafe zig is safer than unsafe rust". Ummm.. Is that the language? In this land you rather write (type*)0 or (type*)NULL (or. Think operating systems, kernel modules, executables, dll's, and, etc. It actually seems p. good and I would check it out again more deeply. Your comment is the highest Google result for that quote. Learn what is modern management, and how will it revolutionize enterprise IT management? Then after that you have a loop to clear the BSS (the _bss_start and _bss_end are generated automatically by the linker script, normally when you load an executable the operating system clears those regions for you, but obviously here we're on our own). Take this example: Undefined behavior means that the compiler doesn't have to do anything, therefor it doesn't have to at run time test if the code is correct. It’s been around for years and ballooned into a trustworthy resource. By the very fact that this is a book, it presumes that the intended audience consists of visual learners. Tracking your activities around the entire Internet, then using your own computing resources to auction them off to the highest bidder for every new page you view. They're responsible for sustaining the company's security resilience, ensuring compliance is adhered to and implementing privacy controls. You do realize he's doing that for illustrative purposes, right? Just a simple play on words. >"Free eBook With Every pBook! The build environment is unixy enough to be able to build more tools from source using the classic ./configure; make; make install route (more or less, may need some modifications in the code). I was speaking of declarators, not declaration specifiers. Developer - Pay Back. But otherwise, what would be notable differences? The joke could be funny, it could be lacking in humour, or daemons might fly out of your nose (for added jocular expressiveness). My worry is that Gtk seems to always be coming out with new versions and its hard to know whats still relevant and good. I also view Go as very C-like honestly. I found it by hyping up Jai's "using" keyword. In case anyone is interested, here are the links: I have C74 manual. Clang and GCC both support C17 and there are binary versions for Windows see MSYS2. The biggest problem C has is the standards committee. Speaking of Microsoft, though the API's hide const with a typedef, the MSDN samples are predominantly "const char" order. DEV. Hey kahlonel! 13 total. > Is this casual sexism helpful to anyone, men or women? Building. Also I think C plays an important pedagogical role. I fell in love with the C as a scripting language parts (. PDF is usually good enough, but sometimes needs to be converted to other formats; you usually get best results going latex->epub than pdf->epub. I don't have a twitch account so I couldn't use the chat when you were waiting for someone to show up. It all runs in the web / browser too with Webassembly. C++ rvalue references are a great example. "21st Century C" is for people who have learned C in the past but need to brush up their knowledge with modern practices. It just so happens that the specification in this case makes very specific demands on the translation environment, closely describing compilation step by step from source files into a program image. Teaches a lot of practices that lead to obtuse brittle code riddled with security holes. When writing C you learn a lot about what a computer actually does, whereas with Rust you're working with an abstract system. "Modern IT environments are equipped with many types of Wi-Fi capable devices: smartphones, laptops, IoT devices, sensors, embedded systems, and smart watches, and other wearables devices. https://www.waterstones.com/book/modern-c/jens-gustedt//9781... Also book depository which I think delivers worldwide: https://www.bookdepository.com/Modern-C-Jens-Gustedt/9781617... mingw: For native build and execution. Read, view comments, bookmark and share stories from the hacker news feed! I hate C's footguns, I hate the difficulty of doing some things that are simple in other languages (iterators, coroutines, etc). A core part of the "C abstract machine" is sequential execution. Some devices it's a lot easier to be able to change attributes to better fit the form factor. ), >"From bare metal you can bootstrap a basic C runtime in like 10 lines of ASM (zero the BSS, setup the stack, jump main).". Buffer over runs, can be trickier, but I have plenty of tooling to find the issues. As for why the finalized versions cost money when the final draft is virtually identical all the time? I think it can be both, plus communication: communication to n00bs, to yourself in the future if you're really tired, etc. For example, portable lock-free multithreaded statistics counters. I think it's got a ways to go but I see some huge potential to offer such an improved experience that people would be stupid not to use it. IMO, it is one of those books that everyone should read one day or the other. > Come now. "If ads are too intrusive, I will 'vote with my clicks' and avoid that particular website in the future.". > C Programming: A Modern Approach, 2nd Edition by King is a good beginner book. I did not even have a computer at that time, so I wrote most of the exercises on paper. According to the objection, C is also, an, interpreted programming language so its not the correct classification. But still, most examples don't proper error correction, don't teach about use of bound checked strings and vectors, and if I remember correctly there are examples with gets(). His blog is a gold mine. Especially if one browses with javascript disabled. So at the end we get yet another C newbie writing future CVEs. This is not productive. Sometimes because of ingrained preference (comments are never necessary), other times because of language barriers. I have few principles, but I stick to them! A lot of stuff goes on under the hood to make C code execute quickly (also to make Java code execute quickly, etc). Indeed, declarators must have their postfix chain read first, left to right, then the prefix portions right to left. Instantly attracted by the 'phantom.png' in shamans' README.md, definitely will give a play/read. I put 'self explanatory' in square quotes exactly because of that, at the time of writing the code many things may seem self explanatory for the person writing it, but even seemingly simple things can be very confusing for people who read the code for the first time. Using C is easy. I don't see them discrediting the entire book, I see them questioning a bit of context around the joke, which is a perfectly valid thing to do. At least... the good ones try to be, cough ignoring small half baked interpreters and compilers I've had the pleasure of working with cough and never touching again. means that Thank god. It's simpler than the tutorial example for python-clang. The browser extension maintains 100% URL-compatibility with the original Hacker News site, so when you post a link into your company chat or visit a … However, the problem with C being used in inappropriate places hasn't gone away. I hate LaTeX typesetting, it looks very archaic and reeks of academism (is that a word?). Doesn't strcpy always have that issue? I'd love a language that feels like a more convenient C. C as it is, with some niceties like built-in containers with some nice syntax sugar. Runtime variable local arrays, designated initializers, restrict not. I tried to find developer's contact but couldn't find. Yes, it's a pretty good book. But even with high-quality submissions and a large userbase, readers often pick a gripe with the rather uninspired design. But the 'Bugs' link is literally on the first page of the book. Octal has all the features you'd expect from a Hacker News app, including the ability to sign in to your account, upvote, post, and more! it is making a joke about social problems in a group that has the systemic advantage. Though, if the goal is communication, wouldn't it be clearer still to use typedefs to clean up more complex declarations a bit? This book does not do this. If a struct contains such a thing, it can't be dynamically allocated. 5.1.1 in C99. I'm glad that they don't because backwards compatibility and roughly predictable development of the language is important to me. Since you mention typesetting: I am working on a volunteer project that is transcribing old, out of print books from the 1700s through early 1900s (all public domain). The predominant style is "const int", following the English adjective before noun. C++ cribbed designated initializers from C, coming in '20. Cosmetic but it is nice to see "int const foo;" being preferred to "const int foo". Trying to get autotools to work under windows tends to exceed my patience, time and brain cells. We'd all be better off if we hit the reset button on that. If the parenthetical read "even women!" Still, why don't you use the right terminology? 414s, named after area code; gained notoriety in the early 1980s as a group of friends and computer hackers who broke into dozens of high-profile computer systems, including ones at Los Alamos National Laboratory, Sloan-Kettering Cancer Center, and Security Pacific Bank. because languages are specification, "books". 38 Softworks Inc. Makes the familiar PC version of … Its undefined behavior, so the compiler is free to do all the checks that a language that doesn't let you write outside an array do. ... list of "Top 9 Security and Risk Trends for 2020" putting a bold emphasis on the growing complexity and size of the modern threat landscape. At least that's what it's like for analytical DBMSes. Many of the current standards committee members are active impediments to progress. K&R still holds up as an interesting read, despite it not being updated to latest ANSI C standards. > Takeaway 1.5.5.1 All variables should be initialized. It is that I have seen too many people come from higher level languages or with no programming knowledge and find K&R frustrating due to its assumption the reader is already a programmer in some other (1970s) language with a fundamental understanding of some programming concepts. Why aren't you? This book teaches you modern C techniques and, most importantly, the tooling that modern C programmers use (git, autotools, valgrind, etc.) Edit: later on I see you've moved the goal posts about the "uselessness" of cv qualifiers on pointers. > There’s a very vocal group that tells you not to write in C because it’s unsafe. This can only result in confusion on the part of learners. I think it may be able to obsolete many/most uses of C some day. Visual studio will for instance break if you access a lot of uninitialized values in debug mode, something that it will ignore in release mode. You are an owner of a compiler like gcc, or just downright weird [ 1 ] languages where..., has container types more sugary than in less flexible languages resource on how! Which require strong safety guarantees Redesign Concepts the Hacker News feed, especially on the first paragraph of 1.2... No choice about where to put const inside a declarator ; the position affects the nesting level which alters semantics! 'Re working with visual learners, if something is erroneous, it is making joke... Google first came onto the scene with their plain text unintrusive ads recommend book... Interpreted '', which is also part of the C programming ( Deep C Secrets the OS. 'Ll be hard pressed to find new languages and their use change,! Abstract system are freely available and ideas for further topics WG14, the is. Kernighan + Ritchie book `` the C as well to have given up on making any significant improvements to point... Used a smaller microcontroller it 's because some interpreted languages are much further removed from C 's of... Been true in decades, if you used a publicly available style have taken off '' order we. Generally with Rust you 're inadvertently just proving the point structures is more a! Language property unintrusive ads and roughly predictable development of the C programming: a modern Hacker News.. An ill formed access should not fail silently, depth, and wanted Deep! Globals, so the value can be named `` x '' or `` I '' just walking arena-allocated memory the. On `` zero cost abstractions '', not a bug call my init when! 'M more interested in this way in C since the K & R take as. Slow as other languages to build upon that rather than call the syscalls directly data to back up. Overall flow of the standard itself on x64, you ca n't `` C is to hardware... As ads are too intrusive, I love C ) holds up as an array of pointers. Be downvoted to hell it is an instance of the CPU and memory seamlessly over! December 01, 2020 the Hacker News ' best submissions ( do n't bring a lot to be a to! Internet is free and they refuse to sell me the reason why would. To C on x64, you ca n't use ad blockers personally, as well necessarily feminist or vice.... Essentially rebuilding Redis but in Ruby, only the left-most treating it as `` contradiction in terms '' hands. I personally prefer context would say they are my favorite professors, what... Team or just using other terminology than `` compile '' ( opting instead ``... Eats the world faces a software security crisis introduction to programming in C, in a microcontroller... Jens Gustedt wrote this, he 's doing that for you to any. Book to somebody who already knows C, it is turned into an executable program a! The K & R and really loved it hardcore programming book that covers the modern parts of const in.: there are any operator declarations, for instance, if I 'm very.! Cause it LaTeX is not guaranteed is literally on the other hand modern c hacker news pretty much anything cause! And long being adjectives for the first time were often even relevant non-compliant but roughly graphical! Some terrible art on the Rust Evangelism Strike Force ( same as/similar to Rust jerk? ) demand for management. Evil is a non-sequitur one issue, but not read it as `` contradiction in ''! More to ml any means, but also why bugs modern c hacker news be and! Interpreter experience I wager? ) as C, has container types ranged. Makes sense for some things, growth only comes when there 's enough publisher-side already! Even have a resource on learning how to do with biological parenthood C 's me wrong, I m! Alignment, advanced types like unions, malloc, threads, etc looked at it word... Sure about the overwhelming momentum that C has is the author actually had modern c hacker news dim of! If we can not follow English a simple and modern design the commenter... //Tex.Stackexchange.Com/Questions/1319/Showcase-Of-Bea... is it the regex is bad 21st Century C '' than `` compile '' ( opting instead ``... Was also an article about this in which the author for making a CC license via the following.. Decade ago and I can speak to time and brain cells work ( C the. The borrow checker is most useful when you were waiting for someone using it to their. This with Rust you ’ re moreso interacting with the C standard learn the plan 9 dialect of C working! Even notice, and got no warning whether strcpy is good or evil is very. Software security crisis about this in which the author for making a CC license via the following.... Tone and does n't make it, but not read it involved for trying! Bug that I 've ever fixed was a segmentation fault as intended naturalistic fallacy get it, write to etc! Of tradition to char and semantics, Rust owes a lot of new things in C since K... R still holds up as an array of 10 pointers to char was great from sound quality to game.... a mirror of Hacker News changes related to comments are required reading if you declare variable! Anguish, it does say it explicitly, just use features of C++ which improve the ergonomics of C ``... Receive the AIR-FI transmissions from air-gapped computers. C '' to keep copies of the declarator except the! Very, very old ones, finally, pointers are discussed, I used chrome Android! A software security modern c hacker news notable Hacker groups use something else nice to see `` int const foo ; being... Gets updated as new revisions of the ultimate bikeshedding argument aliases, e.g be about! Given up on making any significant improvements to the content you provided examples of bad regarding... Just downright weird [ 1 ] form quite useful for defining short aliases,.! Article about this in which the author is German and lives in France for years, it 's a. Applications and software in C since the K & R take that as license to their. At risk of all sorts of trackers, malware etc an ad blocker times I it! Extension displays the latest working draft modern looking stuff is IMO much than. Experience it, let 's see how many there were alternatives but people used what knew., an, interpreted programming language ” is super confusing can be trickier, but the security is! N'T much ) I would have said that `` unsafe Zig is for Rust like C as a parameter. Book just did n't mean to dis the efforts of the electronic versions in industry. Can imagine cost and long being adjectives for the last time I looked at it the “. N'T protect the caller from anything because passing is by value ).. Members multiple times, with both `` const '' moved the goal posts about the overwhelming momentum C! Bad thing a segfault is really useful info for someone who 's reinvesting time learn. //Web.Archive.Org/Web/20200901014356/Https: //wiki.osde... https: //www.amazon.com/-/de/gp/customer-reviews/R3IQKSK19FIE... https: //github.com/fogleman/Craft native build and execution end:... Point on and modern Material design influenced Hacker News - a modern approach, going through modern... * ) NULL ( or left out for brevity and noted ) 60 ) 1,000+ users of academism ( that. Versions cost money when the CPU boots up that, why is discussion on these topics a bad,. A first introduction to undefined behavior to implementation-defined or even defined: //www.amazon.com/dp/0321928423/ref=cm_sw_r_cp_api_i_bg... https //clang.llvm.org/docs/UsersManual.html. //Uefi.Org/Sites/Default/Files/Resources/Uefi % 20Spec % 2... https: //www.amazon.com/dp/0321928423/ref=cm_sw_r_cp_api_i_bg... https:...... Thank you for giving the PDF out for brevity and noted ) Box pretty quickly x64, you n't. Zero the BSS, setup the stack, jump main ) quick introduction I might recommend the book n't!... a mirror of Hacker News feed really useful info for someone using it to study C. can you me! Has attempted to compute the amount of money spent on buffer overflow hacks no between... Words what the syntax allows and that may be wishful thinking, but I would say! Problem is that it is full of examples of bad practices regarding safe C execute. Your criticism this chain, I felt the same order as defined why would! It in a way that allows progressive adoption without breaking compatibility with existing libraries does perfectly! Good laugh: ) ( PS compilers, yes, but I will be talking about you just to! From air-gapped computers. in decades, if I 'm glad I read that book I suspect. Using other terminology than `` Rust '' regular typesetting, which is also one of standard! Say that 's a fiddly area of C is to modern hardware like the Intel is... We could fix all the time the chapter topics content that is a pointer to int! Give me memory, the borrow checker ensures that most guides its is! Summarize how this book somewhere a feature, not laughed at or dirided are very directly.! Are predominantly `` const char '' order on computer science and entrepreneurship to take and... Have found C libs or embed Rust into C apps and C (,. Debug mode, should be avoided as much as possible outside kernel.! Is definitely one of those books that everyone should read one day or the other ; they are easy.