Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "preprocessor"
Hello, I just want to let you know I'm working on a 15 year old product and it is currently in production.
It uses Angular.js and one of the earliest versions of React.js. I cannot use ES6, we don't have Babel, no JSX syntax, no CSS preprocessor. No webpack.
I must support browser since IE6 with an ES3 syntax. (luckily I got some some polyfills for an ES5 syntax)
When I build a component I have to call React.createClass and React.createElement.
The render() function is basically a nested pile of React.createElement.
There is no documentation for this product, no tests, no anything.
I had to reverse engineer it in order to understand how it works.
The code base uses mixed programming styles and naming conventions, plus thousands of little js files.
Oh and obviously no hot reload, every time I make a change I have to restart everything.
Please, send help.
I'm in danger.
An underpaid developer
I'm not crying, you are crying...19
I love how C++ is getting better and better with every new standard. How preprocessor-hacks become less and less relevant.
Now C++ 20 is finally giving us modules, and we only had to wait 26 years longer than the Fortran guys. Well done, people. Well done.
C is nice and all but have you ever had to massacre your code with preprocessor instructions to make your code portable?3
Been really busy with things haven’t got around to posting a book in like a week or so..
But I’ll post one today..
This book, available for free online or you can buy it, written in 1994. But so under appreciated by people for some reason most people never have seen it or know about it. But this is the ONLY book I know of that actually covers this topic.. the only book in existence that specifically goes thru how OOP can be done with C.
NOW hold up before you say just use C++ stop and think for a second.. bear with me.
First off this book is purely for informational purposes and educational use to deepen your understanding of what OOP is actually doing behind the scenes in languages like C++ where keywords exist for these things and you just blindly use them without thinking about under the hood.
This book contains a lot of code and builds you up a complexly library from scratch to make OOP in C... now I don’t take this book literally and this but I have implemented some concepts from this book in projects in the past, and it helps a lot.
Also in my honest opinion If you finish this book, you will be a better C programmer AND c++ programmer, C programming because it teaches you a lot about complex things that you never thought about doing with the language. It proves you can do polymorphism can do inheritance and encapsulation. And it’s not really bloated either.
This books is an awesome book, if you don’t understand C pointers you definitely will after this book.. if you don’t understand OOP in C++ what’s really going on.. you will after this book. After all C++ began as just a preprocessor of C.
Great book for writing reusable, extendable large scale embedded c systems.
Anyway.. rare book of which should not be rare considering it’s free.3
I felt like being the cause for “that dreaded legacy code“ and wrote 250 lines of C preprocessor macros for generating bitfields in a large header file automatically, with the goal of simplifying and clarifying register access for all peripherals in the end. Then, I found out that SDCC's optimisation for bitfields is absolutely awful (if existent at all), and I don't really want to use these abstractions if they have a performance impact.
Did I deserve that?7
@AlexDeLarge and any other React guys, which do you prefer? Traditional css files, whether that be vanilla or with a preprocessor, or style objects for each component.
There are some pretty clear pros i can identify for both sides, but I'm pretty sure I'm missing somethings and I'd like to hear from you guys your opinions and experiences with either27
The primary concept of reactive programming is great. The idea that things just naturally re-run when anything they rely on is changed is amazing. Really, I think it's the next step in programming language development and within a decade or two at least one of the top 5 programming languages will be built entirely on this principle.
Expecting every dependency to be used unconditionally is stupid. Code that checks everything it might need all the time even if a decision can be made from much less information is simply bad, inefficient code. If you want to build a list of dependencies automatically, you have to parse the source.
Student intern here. My boss recently asked me to replace several if-statements with preprocessor macros.
And apparently, he didn‘t joke.5
Awful idea of the day - Have a programming language with no comments, but regex preprocessor macros. Use macros to define your own comment syntax and strip them before compiling.
I love CSS, but don't like preprocessors (like SASS, Less, or Stylus) :/ There's nothing more beautiful than vanilla CSS with zero workflow :)10
I fucking hate CSS. I thought I'm not bad at it ... But I just wasted 1h over nothing ...
Couldn't set the width for the anker tags5
A: [technology] really sucks. For example, it does this thing where [shitty thing].
B: So just because [shitty thing], you throw out the entire [technology]?
No you dimwit. It's because of all the other things that led up to this point. This new bullshit is just being tossed on top of the mountain of other bullshit.
I'm not going to list off all 5000 reason why Cobol-interpreter-using-C-preprocessor is absolute garbage when "it's cobol implemented in the C preprocessor" is what I'm ranting about *now*.
You know you have been coding with CSS Preprocessor for far too long when you typed this in regular stylesheet and wondering why it doesn't work...
Why the font doesn't align to center!!! @&$#+%*^2
I was tinkering around with my linux installation and trying to decide on a new terminal to use, and I ended up compiling st (suckless terminal). On a whim, I decided to look through the source code and see how much of it I would understand.
There was a C header file called arg.h that uses the preprocessor and macros to parse argument flags and songs by setting up a switch statement in a loop, all in under 50 LoC. To use it, just wrap the switch body between ARGBEGIN and ARGEND, and that's it. The comment at the top simply read "copy me if you can", a challenge to future programmers such as myself.
It was the most beautiful, elegant solution I have ever seen. I tried to tell my girlfriend about it, but she just didn't get it. Maybe some of you will appreciate it more:
Was googling some preprocessor tricks for C++ and I came across this:
The next time you complain about your node template system remember what 2000 was like.1
It stands for PHP Hypertext Preprocessor? The definition of itself is a stack overflow?
Also, (1+1) . 2 = "22"?
(heading)How a programming language is created? Because I want to make my own.(heading)
I am learning C and next I will learn C++, SQL,DS&A, Assembley, Lex&Yacc,Operating Systems, Computer Arcticture, Computer Networks because I think it's enough for my goal. The only reason I am learning this, to make my own C++ clone with my own knowledge. But I really don't know how can I create my own programming language like C++ from scratch. Like what are the first steps to began with. As I know that C, first step is Preprocessor then Compiler then Assembler then (Loader/Linker).
Anyone please give me a step by step guide like learn this language first then this then this. So I can finally reach that amount of knowledge which I can implement to create my own programming language like C++.7
My preprocessor is just generalized kerning, the macros are variations on the single well-known proof for the Turing-completeness of GK, the type system will probably be a Prolog reskin so simple the translator can be a FSM, the type inference algo is the original HM algorithm which I don't even need to change, the core language is Lambda calculus and no more, and the backend might just be Erlang itself if my research confirms that extending LLVM until it consistently beats Erlang is unrealistic.
I invented nothing, I create nothing. All I do is plug circles into square holes and fill the gaps with play dough.5
Due to disability I have to use a phone mostly. What possess people to create illegible web pages? Text is the opposite of bold. Links are a light blue which gives no contrast.
To top it off, some pages won't expand. Others do but don't wrap the text. How smart would a preprocessor have to be to seamlessly feed it's output to a browser? Probably GPT-3 could do it.
Suppose you made a tool for your STL that throws compile-time errors when trying to copy references, so your pointers remain tidy.
Suppose also that the language has a a turing-complete preprocessor that can be used to throw useful errors.
Then WHY THE FUCK DOES UNIQUE_PTR NOT OVERRIDE THE DEFAULT ERRORS WHICH TELL ME NOTHING ABOUT WHAT I FUCKED UP BUT PRETEND UNIQUE_PTR IS AT FAULT FOR NOT DEFINING "OPERATOR=" ?
So far I've been pretty lucky... except for the code some of my professors at uni used in their assignments. A couple of them had this horrid habit of giving you a horribly-written, out-of-date (we're talking these chuckle heads used the same code for years on end and wondered why it didn't work on new versions of Java), messy source file with "fill in the blanks" sections like it was some kind of Java Mad Libs book. One of them had an entire jarchive of data structures we were required to use that he'd written in the '90s and NEVER UPDATED. Another one had a script he'd written for his own specialized assembly macro preprocessor that he'd been using without update for who even knows how long. Now, we were using one of those goofy virtual machines with its own simplified assembly language, and we were on the fourth version of the program. This guy'd written his macro processor in Java for the second version, never updated his Java source, only provided a barely-working .bat script for running it, even though the department's official preference was a *nix environment, and implemented this horrid "pretty-printer" that had a regrettable little habit of eating code. You heard that right. You'd run build.bat and it'd expand your macros then send it over to the pretty-printer which would very infrequently just replace the existing program file with an empty file. When we brought it to his attention, he goes "...huh. never happened to me." and proceeded to use the very same set of programs for the next three semesters, even when the assembly simulator was updated again. I heard wails of anguish from the poor sad souls that came after me as their macro processor created program files with deprecated operations, their pretty printer printed out beautiful, perfectly-organized empty files, and the professor responded to every second of a student begging for an updated version with "...huh. never happened to me." I never saw a single bug reported to either of those professors even acknowledged, let alone fixed. Some of the Java Mad Libs were the same ones they'd started using when they first switched the curriculum from Ada to Java. Thankfully after my first year I escaped into the bliss of the next three years, which were full of *nix and C and beauty.
trying to refactor some code to implement a issue/feature on a ticket:
try option A. .... 2 hours later hit a Dead end.
try option B .... 1 day later.. another dead end.
try option B.2f ... I want to give up... wasting all my time...
Not sure what I'm suppose to do anymore..
It feels chaotic and dirty hacking to make it work.. and even now. I cannot get it to compile...
Only solution looks like Copy and paste a couple of classes and change one single variable. with huge preprocessor #if around them.
I need to take a shower I feel dirty now...1
Someone, somewhere, in the standard C library headers for my particular libc implementation, is #undef'ing assert() unconditionally and it's causing massive headaches.
Fuck the C preprocessor. There's no way I can track this down it seems, but my assert implementation is being quietly ignored and I have no recourse for it.
Gotta change all of my asserts to a different name now. Fun.
been exploring the options for cross platform desktop app, and i found :
java : both awt and swing look ugly, i really like OOP of java, and the way projects are organized is easy to scale, but i need to deploy the jdk, and the speed on gui apps isn't that great
C# : (.net/ mono, i can't grasp F# and vb is stupid) looks native on windows, not so much alien on both linux/mac, and being a java cousin is a pro, i found the Eto library for mono even looks more native on *ix than winforms
wxwidgets: for C/C++ so far this looks like the best option for total native feel and performance, but man i fucking hate C code, and this looks a lot like C code, even with proper native Cpp support, maybe i should dive deeper in it
GTK+ : did any one mention C code ? because this mother fucker is plain C with macros all over the place, it made me realize why wx is promoted as Cpp friendly, i doubt I'll use this
tcl/tk : even tho ive never wrote a single line of tcl in my life, the tk lib is the default ui for both python and ruby on all supported platforms,
and i really love ruby, and Python is Usually a joy to work with
Qt : this by far looks like the best option, proper OOP in C++, bindings for python (ruby binds are outdated), almost native look and feel on supported platforms, and even has a gui builder in xml or json/js (qml) however i bet I'll use such a thing, the building tho depends on an external preprocessor "moc" and some wicked macros, also makes working with templates a fucking mess, and the heavy dependence on QObject inheritance makes integrating external libraries a bit more tiring, the signal slot system makes more sense in python than in C++, since it makes me confused about the flow of the code
lazarus: is a freepascal implementation that looks and feels like delphi, not so much for native look and feel, but good performance and easy language to handle
electron : this fat mofo is fat, it's the slowest of all options, if i want an html app, I'll just compile a stripped down webkit and deploy that
what do you think ? and did i miss something ?17
A lot have been moving forward using preprocessor such as less, sass & stylus.
There are some developer still (who just knows it but don't use it), make changes on the minified CSS in directly.1
A way to run sass/stylus/pugjs/coffeescript/typescript or any other preprocessor for that matter on the web browser3
What is your favorite CSS framework or preprocessor and why?
I recently stumbled onto PureCSS, after a freelance client wanted to use it, which has been very nice to me.1
I don’t know if they really don’t want Sass or if they’re just scared to try it.
Not all new techs are horrible.
Hope one day they will realize that using CSS preprocessors is way better. And it’s not that as complicated as it sounds. Jesus Christ.
@ pro-CSS frontends, any thoughts?5
"I'm going to save space in my source code file by using obscure abbreviations for all my #define statements, and cramming as much C code into as few lines as possible."
- teammate who apparently has no idea how a preprocessor works, and who thinks "code density" literally means cramming lines of code in as small a space as possible in the source file!
So I'm target multiple platforms with one of my c++ projects and on one of the platforms I the window manager is quite different, and one of the libraries can't be used. Thats fine for my needs, I'm just wondering what the typical way to allow for these differences is. Basically currently I've created 2 "main" files that have preprocessor code to only use he one that's right for the platform by having ifdefs at the beginning of each, I've kinda followed that methodology for the other files that are totally platform specific also. Is there a better way to go about this? Currently using msvc for windows compilation and a gcc-esqu compiler for one of the other platforms, where the compile command is built by a home made build tool.
Linux: sudo apt-get install IDE dev-libs etc
Windows: install wxMSW, extract compressed binaries, set environment variables, set preprocessor/project settings in VS2017, set search directories, etc.
Why is it so ANNOYING to set up a simple GUI development library for C++ on Windows?