Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
![](/static/devrant/img/pipeless-devrant-banner-white.png)
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "weird syntax"
-
Had to debug an issue,
*ssh user@domain*
"some wild network connection issue"
*hmm weird.. *
*checks everything again*
*hmm seems alright.. *
*tries again*
*same damn error*
*ssh -v user@domain*
*syntax error thingy on the -v part*
😮
*messages co-worker asking what the fuck could be giving on*
"ey mate check your aliases 😂"
*alias"
"alias ssh="echo {insert network connection issue"*
*loud laughing from the co-worker I messaged*
MOTHERFUCKER 😆15 -
EEEEEEEEEEEE Some fAcking languages!! Actually barfs while using this trashdump!
The gist: new job, position required adv C# knowledge (like f yea, one of my fav languages), we are working with RPA (using software robots to automate stuff), and we are using some new robot still in beta phase, but robot has its own prog lang.
The problem:
- this language is kind of like ASM (i think so, I'm venting here, it's ASM OK), with syntax that burns your eyes
- no function return values, but I can live with that, at least they have some sort of functions
- emojies for identifiers (like php's $var, but they only aim for shitty features so you use a heart.. ♥var)
- only jump and jumpif for control flow
- no foopin variable scopes at all (if you run multiple scripts at the same time they even share variables *pukes*)
- weird alt characters everywhere. define strings with regular quotes? nah let's be [some mental illness] and use prime quotes (‴ U+2034), and like ⟦ ⟧ for array indexing, but only sometimes!
- super slow interpreter, ex a regular loop to count to 10 (using jumps because yea no actual loops) takes more than 20 seconds to execute, approx 700ms to run 1 code row.
- it supports c# snippets (defined with these stupid characters: ⊂ ⊃) and I guess that's the only c# I get to write with this job :^}
- on top of that, outdated documentation, because yea it's beta, but so crappin tedious with this trail n error to check how every feature works
The question: why in the living fartfaces yolk would you even make a new language when it's so easy nowadays to embed compilers!?! the robot is apparently made in c#, so it should be no funcking problem at all to add a damn lua compiler or something. having a tcp api would even be easier got dammit!!! And what in the world made our company think this robot was a plausible choice?! Did they do a full fubbing analysis of the different software robots out there and accidentally sorted by ease of use in reverse order?? 'cause that's the only explanation i can imagine
Frillin stupid shitpile of a language!!! AAAAAHHH
see the attached screenshot of production code we've developed at the company for reference.
Disclaimer: I do not stand responsible for any eventual headaches or gauged eyes caused by the named image.
(for those interested, the robot is G1ANT.Robot, https://beta.g1ant.com/)4 -
Is it just me who sees this? JS development in a somewhat more complex setting (like vue-storefront) is just a horrible mess.
I have 10+ experience in java, c# and python, and I've never needed more than a a few hours to get into a new codebase, understanding the overall system, being able to guess where to fix a given problem.
But with JS (and also TS for that matter) I'm at my limits. Most of the files look like they don't do anything. There seems to be no structure, both from a file system point of view, nor from a code point of view.
It start with little things like 300 char long lines including various lambdas, closures and ifs with useless variables names, over overly generic and minified method/function names to inconsistent naming of files, classes and basically everything else.
I used to just set a breakpoint somewhere in my code (or in a compiled dependency) wait this it is being hit and go back and forth to learn how the system state changes.
This seems to be highly limited in JS. I didn't find the one way to just being able to debug, everything that is. There are weird things like transpilers, compiler, minifiers, bablers and what not else. There is an error? Go f... yourself ...
And what do I find as the number one tipp all across the internet? Console.log?? are you kidding me, sure just tell me, your kidding me right?
If I would have to describe the JS world in one word, I would use "inconsistency". It's all just a pain in the ass.
I remember when I switcher from VisualStudio/C# to Eclipse/Java I felt like traveling back in time for about 10 years. Everyting seemd so ... old-schoolish, buggy, weird.
When I now switch from java to JS it makes me feel the same way. It's all so highly unproductive, inconsistent, undeterministic, cobbled together.
For one inconveinience the JS communinity seems to like to build huge shitloads of stuff around it, instead of fixing the obvious. And noone seems to see that.
It's like they are all blinded somehow. Currently I'm also trying to implement a small react app based on react-admin. The simplest things to develop and debug are a nightmare. There is so much boilerplate that to write that most people in the internet just keep copying stuff, without even trying to understand what it actually does.
I've always been a guy that tries to understand what the fuck this code actuall does. And for most of the parts I just thing, that the stuff there is useless or could be done in a way more readable way. But instead, all the devs out there just seem to chose the "copy and fix somehow-ish" way.
I'm all in for component-izing stuff. I like encapsulation, I'm a OOP guy by heart. But what react and similar frameworks do is just insane. It's just not right (for some part).
Especially when you have to remember so much stuff that is just mechanics/boilerplate without having any actual "business logical function".
People always say java is so verbose. I don't think it is, there is so few syntax that it almost reads like a prose story. When I look at JS and TS instead, I'm overwhelmed by all the syntax, almost wondering every second line, what the actual fuck this could mean. The boilerplate/logic ration seems way to off ..
So it really makes me wonder, if all you JS devs out there are just so used to that stuff, that you cannot imagine how it could be done better? I still remember my C# days, but I admin that I just got used to java. So I can somehow understand that all. But JS is just another few levels less deeper.
But maybe I'm just lazy and too old ...4 -
Today on "How the Fuck is Python a Real Language?": Lambda functions and other dumb Python syntax.
Lambda functions are generally passed as callbacks, e.g. "myFunc(a, b, lambda c, d: c + d)". Note that the comma between c and d is somehow on a completely different level than the comma between a and b, even though they're both within the same brackets, because instead of using something like, say, universally agreed-upon grouping symbols to visually group the lambda function arguments together, Python groups them using a reserved keyword on one end, and two little dots on the other end. Like yeah, that's easy to notice among 10 other variable and argument names. But Python couldn't really do any better, because "myFunc(a, b, (c, d): c + d)" would be even less readable and prone to typos given how fucked up Python's use of brackets already is.
And while I'm on the topic of dumb Python syntax, let's look at the switch, um, match statements. For a long time, people behind Python argued that a bunch of elif statements with the same fucking conditions (e.g. x == 1, x == 2, x == 3, ...) are more readable than a standard switch statement, but then in Python 3.10 (released only 1 year ago), they finally came to their senses and added match and case keywords to implement pattern matching. Except they managed to fuck up yet again; instead of a normal "default:" statement, the default statement is denoted by "case _:". Because somehow, everywhere else in the code _ behaves as a normal variable name, but in match statement it instead means "ignore the value in this place". For example, "match myVar:" and "case [first, *rest]:" will behave exactly like "[first, *rest] = myVar" as long as myVar is a list with one or more elements, but "case [_, *rest]:" won't assign the first element from the list to anything, even though "[_, *rest] = myVar" will assign it to _. Because fuck consistency, that's why.
And why the fuck is there no fallthrough? Wouldn't it make perfect sense to write
case ('rgb', r, g, b):
case ('argb', _, r, g, b):
case ('rgba', r, g, b, _):
case ('bgr', b, g, r):
case ('abgr', _, b, g, r):
case ('bgra', b, g, r, _):
and then, you know, handle r, g, and b values in the same fucking block of code? Pretty sure that would be more readable than having to write "handeRGB(r, g, b)" 6 fucking times depending on the input format. Oh, and never mind that Python already has a "break" keyword.
Speaking of the "break" keyword, if you try to use it outside of a loop, you get an error "'break' outside loop". However, there's also the "continue" keyword, and if you try to use it outside of a loop, you get an error "'continue' not properly in loop". Why the fuck are there two completely different error messages for that? Does it mean there exists some weird improper syntax to use "continue" inside of a loop? Or is it just another inconsistent Python bullshit where until Python 3.8 you couldn't use "continue" inside the "finally:" block (but you could always use "break", even though it does essentially the same thing, just branching to a different point).19 -
TL;DR; windows XP + bat scripts + fascination about being able to make things yourself.
I was born and raised in a village. And the thing about living in a village is that you are free :) Among all the other freedoms you are also free to build your own solutions to various domestic problems, i.e. to build stuff. This is one of the things that fascinates me about living outside the city.
When I finally was old enough (and had the means to, i.e. a computer) to understand that programming is something that allows you to build your own solutions to computer problems, it got to me.
With win 3.1 I was still too fresh and too young. With win 95 I was more interested in playing with neighbours outdoors. With win 98 I was a bit too busy at school. But with win XP the time had come. I started writing automation solutions for windows administration using .bat scripts (.vbs was and still is somewhat repelling to me). I no longer needed to browse Russian forums and torrent sites to find a solution to a problem I had! That was amazing!!! [esp. when my Russian was very weak].
That was the time when I built my first sort-of-malware - a bat script downloading and installing Radmin server, uploading computer's IP and admin credentials to my FTP.
I loved it!
However, I'd stumbled upon may obstacles when writing with batch. I googled a lot and most of the solutions I found were in bash (something related to Linux, which was a spooky mystery to me back then). Eventually, I got my courage together and installed ubuntu. Boy was I sorry... Nothing was working. I was unable to even boot the thing! Not to mention the GUI...
Years later I tried again with ubuntu [7.10 I think.. or 7.04] on my Pavilion. Took me a looooot of attempts but I got there. I could finally boot it. A couple of weeks later I managed to even start the GUI! I could finally learn bash and enjoy the spectacular Compiz effects (that cube was amazing).
I got into bash and Linux for the next several years. And then I thought to myself - wait, I'm writing scripts that automate other programs. Wouldn't it be cool I I could write my own programs that did exactly what I wanted and did not need automation? It definitely would! I could write a program that would make sound work (meaning no more ALSA/PA headaches!), make graphics work on my hardware, make my USB audio card to be set to primary once connected and all the other amazing things! No more automation -- just a single program or all of that!
little did the naive me knew :)
I started with python. I didn't like that syntax from the beginning :/ those indentations...
Then I tried java. Bucky (thenewboston), who likes tuna sandwiches, on my phone all the free time I had. I didn't learn anything :/ Even tried some java 101 e-book. Nothing helped until I decided to write some simple project (nothing fancy - just some calculations for a friend who was studying architecture).
I loved it! It sounds weird, but I found Swing amazing too. With that layout manager where you have to manually position all the components :)
and then things happened and I quit my med studies and switched to programming. Passed my school exams I was missing to enter the IT college and started inhaling every bit of info about IT I could get my hands on (incl outside the college ofc).
A few more stepping stones, a few more irrelevant jobs to pay my bills in the city, and I got to where I am now.5 -
You know what really grinds my gears? When people criticize a programming language but uses edge cases and stuff that can be avoided by using the tried and true "don't be an idiot". Take for instance JavaScript, a language I like and a language that has a lot you can criticize. But I feel like a lot of peoples criticism isn't warranted.
What's that? No ints? Use parseInt or Math.floor.
What are you saying? == works in strange ways? Yes, that's what we have === for.
Type coercion is wonky? Think it's weird how string + int works differently than string - int? Wanna string with number + - + - - + - - etc? Don't! Don't add strings and ints, don't subtract strings and ints. You can't in statically typed languages and you aren't supposed to in dynamically typed
Adding arrays and objects, arrays and arrays, objects and objects etc. is inconsistent? Why are you trying to do that?
Adding floats together gives odd results? Now we're getting somewhere! And Mozilla responded to that with a method called toFixed.
Declaring variables with var doesn't always work that well? Use let and const
Then there's this weird attitude that some people I've met have, where they will complain about the module system and how "well you rely on the community for those packages" as if it's a bad thing. And then coming with the "well you don't know what the (open source) packages do internally" as if I (for the most part) give a shit. Then they'll swear by companies like Zend or Microsoft as if they can't just stop supporting the languages they use. Maybe it's just because I like community content more because of video game mods.
Wanna criticize JS, then there's plenty to talk about. Like the built in date object is basically shit. Or how in NodeJS you can have node_modules in your node_modules. Or how classes don't really have the best syntax. Left-Pad. And so on (it's too late for me to be able to remember much more).1 -
Well, not necessary my favourite but the first one I learned.
I think the weird syntax and semantics combined with the ridiculous average length of variable names is a major flaw in this one.4 -
Sorry, need to vent.
In my current project I'm using two main libraries [slack client and k8s client], both official. And they both suck!
Okay, okay, their code doesn't really suck [apart from k8s severely violating Liskov's principle!]. The sucky part is not really their fault. It's the commonly used 3rd-party library that's fucked up.
Okhttp3
yeah yeah, here come all the booos. Let them all out.
1. In websockets it hard-caps frame size to 16mb w/o an ability to change it. So.. Forget about unchunked file transfers there... What's even worse - they close the websocket if the frame size exceeds that limit. Yep, instead of failing to send it kills the conn.
2. In websockets they are writing data completely async. Without any control handles.. No clue when the write starts, completes or fails. No callbacks, no promises, no nothing other feedback
3. In http requests they are splitting my request into multiple buffers. This fucks up the slack cluent, as I cannot post messages over 4050 chars in size . Thanks to the okhttp these long texts get split into multiple messages. Which effectively fucks up formatting [bold, italic, codeblocks, links,...], as the formatted blocks get torn apart. [didn't investigate this deeper: it's friday evening and it's kotlin, not java, so I saved myself from the trouble of parsing yet unknown syntax]
yes, okhttp is probably a good library for the most of it. Yes, people like it, but hell, these corner cases and weird design decisions drive me mad!
And it's not like I could swap it with anynother lib.. I don't depend on it -- other libs I need do! -
I thought I at least was OK at JavaScript, but today I looked at a tictactoe implementation, and with all the fancy new syntax I have no clue what most of it is doing.2
-
Pentesting for undisclosed company. Let's call them X as to not get us into trouble.
We are students and are doing our first pentest at an actual company instead of assignments at school. So we're very anxious. But today was a good day.
We found some servers with open ports so we checked a few of them out. I had a set of them with a bunch of open ports like ftp and... 8080. Time to check this out.
"please install flash player"... Security risk 1 found!
System seemed to be some monitoring system. Trying to log in using admin admin... Fucking works. Group loses it cause the company was being all high and mighty about being secure af. Other shit is pretty tight though.
Able to see logs, change password, add new superuser, do some searches for USERS_LOGGEDIN_TODAY! I shit you not, the system even had SUGGESTIONS for usernames to search for. One of which had something to do with sftp and auth keys. Unfortunatly every search gave a SQL syntax error. Used sniffing tools to maybe intercept message so we could do some queries of our own but nothing. Query is probably not issued from the local machine.
Tried to decompile the flash file but no luck. Only for some weird lines and a few function names I presume. But decompressing it and opening it in a text editor allowed me to see and search text. No GET or POST found. No SQL queries or name checks or anything we could think of.
That's all I could do for today. So we'll have to think of stuff for next week. We've already planned xss so maybe we can do that on this server as well.
We also found some older network printers with open telnet. Servers with a specific SQL variant with a potential exploit to execute terminal commands and some ftp and smb servers we need to check out next week.
Hella excited about this!
If you guys have any suggestions let us know. We are utter noobs when it comes to this.6 -
My C# class loves to come up with weird/unrealistic scenarios to teach a specific language feature... I feel like the more effective way to teach would be to mention a real life scenario where it makes more sense to use the feature and give it some context rather than coming up with some arbitrary series of classes to represent departments and employees and then say "write extension methods for them to write them out"
If you tell me that I'm going to go, ok this works, but is there a specific reason I should do this instead of using a for or foreach to do the exact same thing? Don't get me wrong I see the appeal of extension methods as well as LINQ but this class never gives any sort of context as to why we're doing stuff. This class could be good, I've had classes that focus on language specific features taught in ways that make sense... My Java prof did a great job...
Also all the slides are terribly written...
Like I attached an example of the description for extension methods... The slides then go on to explain how the syntax for them works and gives an example...
Like ok I guess technically you told me what they are and how to use them, but gave zero context...
On the opposite end of the spectrum, I go to MSDN for their definition of extension methods, and it is much more clearly written and gives context to where/why they're used... and this is supposed to be a 5th semester course...2 -
Why the hell the mutant-frankenstein language known as Javascript even exists?
Why back in the day couldn't they use an existing language's syntax for interacting with the web, Like Android did with Java?
Don't get me wrong, I like using js. But it has too many weird inconsistent parts which feel very quirky. Even more than Python.6 -
!rant
So I started learning Golang.
I have to say, I heard the language was good but holy shit!
I got my eye on you implicit interface implementation👀👀
I can't wait to start my first project with a clusterfuck of compositions 🤤
P.s: syntax is kinda weird ¯\_(ツ)_/¯6 -
the one that exists (c#) seems underused compared to where it could (or even should) be used. and the place that uses it the most (enterprise) butchers and mangles its use, just as enterprise tends to do with everything.
the one that i'm designing... the fact that it doesn't exist yet, and that even as i'm zeroing in on syntax and philosophy that i'm very much starting to be proud of, i still don't have a proper idea of how to implement even the most basic parser/interpreter for it, not because it's in any way difficult or unusual, but just because... i've never done that before, so i get into weird circular thought paths that produce weird nonsensical code...
... on top of that, i still only have a very, very fuzzy idea of how will it (sometime in extremely distant future) actually implement the most interesting and core feature - event-based continuous (partial) re-parsing of the source code and the fact that traversing the tokens at the leaf level of the syntax tree should result in valid machine code (or at least assembly) that is the "compiled" program.
i *know* it's possible, i just don't yet know enough to have a contrete idea how exactly to achieve it.
but imagine - a programming language where interactive programming is basically the default way of working, and basically the same as normal programming in it, except the act of parsing is also the (in-memory) compilation at the same time, so it's running directly on the hardware instead of via interpretrer/vm/any of that overhead crap.
also then kinda open-source by definition.
and then to "only" write an OS in that, and voilá! a smalltalk-like environment with non-exotic, c-family syntax and actual native performance!
ahhh... <3
* a man can dream *2 -
I have a weird love/hate relationship with JavaScript.
I'm not at all a webDev, but I like to use it occasionally because it's fun and I really like its syntax... but it's an absolute pile of shit.
If you put racing stripes and a spoiler on a golf cart, it's still a fucking golf cart.2 -
I'm pretty familiar with SQL. It used to scare me, but now, years on, I'm super comfortable with it, and I don't really get why anyone would need anything else, generally speaking. Having said that, just tried to play with mongodb for a minute, and holy shit, that is some weird, weird stuff. I read all of the marketing fluff on the site, but I still am at a loss. Is it just that people don't want to be bothered to learn SQL syntax or use an ORM, or make a REST API, so they went off and created a weird JSON thing?
Not trying to be a douchebag, not trying to criticize. I honestly do not get it. Why does this exist?10 -
Be me first time using python forced into it.
Get frustrated with all the syntax errors you make and Python's cancerous horseshit syntax.
Chase a weird desync problem between C code client and Python raspberry pi controller.
Make 7000 changes to the code and run out of ideas because nothing makes sense anymore.
Decide to go ahead and write C code.
Find out you've been writing code to a different file and running an older version of the code.
I'm a retatd FML don't be like me.6 -
Random thoughts on more out of the box tools/environments.
Subject: Pharo
Some time ago I had shown one of my coworkers about Pharo and he quickly got the main idea behind it but mentioned how he didn't like the idea of leaving behind his text editor to deal with source code.
Some time last week I showed the dude some cool 3d animations you can do with Pharo while simultaneously manipulating the code to change them in real time. Now that caught his attention particularly and he decided he wanted to know more about the language but in particular the benefits of fucking around with an image based environment rather than a file based.
Both of us reached the conclusion that image based makes file based dev enviroments seem quaint in comparison, but estimated that it was nothing more than a sentiment rather than a fact.
We then considered what could be the advantage/disadvantages of such environments but I couldn't come up with anything other than the system not having something like Vim or VS Code or whatever which people love, but that it makes up for it with some of the craziest IDE tools I had ever seen. Plugins in this case act like source code repos that you can download and activate into your workflow in what feels something similar to VS Code being extended via plugins written in JS, and since the GUI is maleable as it is(because everything is basically just subsets of morp h windows) then extending functionality becomes so intuitive that its funny
Whereas with Emacs(for example) you have to really grind your gears with Elisp or Vimscript in Vim etc etc, with Pharo your plugin system is basicall you just adding classes that will convert your OS looking IDE into something else.
Because of how light the vm machine is, portability is a non issue, and passing pharo programs arround is not like installing Java in which you need the JVM.
Source code versioning, very important, already integrated into every live environment and can be extended to do pushes through simple key bindings with no hassle.
I dunno, I just feel that the tool is too good to be true. I keep trying to push limits into it but thus far I have found: data visualization and image modeling to work fine, web development with Teapot to be a cakewalk and work fine, therr are even packages for Arduino development.
I think its biggest con would be the image based system, but would really need to look into how this is bad by any reason other than "aww man I want vim!" since apparently some psychos already made Emacs and VS code packages for interfacing with Pharo source trees.
Embedded is certainly out of the question for any real project since its garbage collected and not the most performant cookie in the jar.
For Data science I can see some future, seems just as intuitive and interesting as a Jupyter Notebook actually, but the process can't and will not be the same since I still don't know of a way to save playground snippets unless you literally create classes for it, in which case every model you build gets saved inside of an object, sounds possible but, strange since it is not a the most common workflow in jupyter.
Some of the environment is sometimes glitchy, but it does have continuos development and have not found many hassles.
There is a biased factor from my side: I seem to be wired to understand the syntax and simple object model better than in other languages. To me this feels natural as if I was just writing ideas rather than code, mostly because I feel that there really ain't much in terms of syntax, the language gets out of my way and the IDE feels like the most intuitive environment in the world to me. I can see why some people would find it REALLY weird of counterintuitive tho.
Guess I really am a simple dude. -
The unix shell syntax is weird looking.
Gonna learn it next. Using Arch without knowing how some scripts work isn't optimal.1 -
Holy shit, what a language...
I'm currently learning Java right, I have never seen such a weird language in my life.
My background is Web Developing and some lua here and there. After a while playing around with Kivy and other alternatives to native Android Studio development I decided it was most probably time for me to start actually getting ready for the inevitable Android Studio.
Getting used to the GUI was easy, everything seemed to make sense and I was already used to IntelliJ.
But the issue came from Java, the number of ways that it's broken, just JVM by itself should be enough to condemn this language to eternal doom. Not even talking about the Syntax, coming from JS it was basically Hell.
I get it's more than useful, but seeing its History, Java should've probably stayed at its Oak stage lmao.27 -
So i bribed a fellow dev/friend who HATES php and Magento... to help me grind out a Magento site while im super behind on a bunch of crap that's mostly boring administrative bs (#ReluctantlyInCharge)
He knew I was coding in python several times over the past several months... yet, despite my near constant griping of formatting bs and high preference of basically anything that doesnt require readability-esq formatting... he apparently didnt get it.
I need to make a quick splash page with a timer on it (other cool elements that i dont think ive ever seen done but i figured why not... weird shit is totally on brand here... like scripting page elements to change and see if people catch on... in very basic ways)...
I know js plenty... but I'd likely have looked up the syntax, was lazy, he loves js (for the intended purpose... he does a lot of blockchain dev) so i asked if hed write me a quick timer line cuz... well im lazy.
He totally overcomplicated it and sends me a page he typed up incl html header. Timer was 3 short block/lines with semicolons... i laughed and wondered why he did all that instead of just the little js... he didnt know either. I told him as a courtesy id make sure to keep the js formatting as he wrote it instead of 1 line...
He sends me 2 examples of a js timer in 1 line... like 1semicolon... i had to show him what i actually meant... 3 'lines' with semicolons on 1 visual line...
He was stunned, then realised i must really hate python11 -
asked the Graduate Teaching Assistant about the syntax for Haskell and why it was giving me weird errors. She replies by saying she's never taken this course before and is learning it along with us but she can help in the logic. -__- had to go ask the prof for help.1
-
Often when i see the annoying as hell t debug exceptionless let’s just bomb entirely but blazing fastness of c and c++ I feel like a nettard
I use c# for its immutable strings clean syntax and beautiful class markers that are redundant compared to c++ but ensure you tell after adding 1000 methods and total lack of all special characters to indicate reference and derreference and pretty lambda syntax... sure it’s lib poor but I get shit done goddamn it and can read my own code later
So why do I feel empty inside every time i run a ./configure and make under Linux like I’m missing some secret party where neat things are being done and want to sob like I do now
I am not a dotnettard even though 5.0 is an abomination in the eyes of man and god ! Even though Microsoft cooks up overcomplex framework technologies that make a wonderful language underused and make us all look like idiots that they then abandon into the scrap heap! We can’t help Linux users haven’t discovered how much nicer c# is and decided to implement it on their own and port their horrible undocumented ansi c bullshit can we ???? Oh god I feel
So hollow inside and betrayed ! Curse
You gates curse youuuu! Curse you for metro direct3d xna wpf then false promises of core ! May you have a special place in hell reserved for you and your cheap wallpaper shifting monitor paintings and a pool speaker that playeth not but bee jees and ac dc forever and ever amen !
Speaking of which do any c/c++ ides have anything that even begins to rival intellisense on Linux and don’t use some weird ass build system
Like cmake as their default ?
Oh sweet memories of time a while back when I already wrote this and still wasn’t getting then tail I deserved
Again4 -
So I'm writing my compiler and I decide to test error handling, see if I'm catching unexpected tokens and whatnot. I try duplicating a semi-colon at the end of a line, for sure it'll give me an error since that's an unexpected token, isn't it? So I run the compiler and... No errors? I start debugging for a few minutes, snoop around, everything seems ok... "Huh, that's weird" and then it dawns on me, a semi-colon only marks the end of a statement. So, technically, it's not an unexpected token if you have an empty statement (which wouldn't break any rules about statements). I decide to try out my theory. I put ;;;;;;;; at the end of a random line in my rust code, hit compile and... it compiles! So that means it is not a bug anymore! I mean, if the big guys that actually know a tad about language design, compilers and all that cool stuff allow it in their languages, why shouldn't it? So I did it, I turned a bug into a feature and now I can go to sleep in peace and stop dreaming about fucking abstract syntax trees (don't mind my kinks >:) ).
Yeah anyways thanks for reading, till next time! Bye!1 -
ugh what have I done to myself?
Today I started this codingame thing someone mentioned on here, but because I'm stubborn I've played every puzzle or game in bash so far...
So yeah, I'm loosing to all the cool kids using C++ or python even on simple stuff and I'm always struggling with this weird syntax - like "$" or not ... whitespace? parenthesis?
I mean I do like some bash but these games are really not made for it4 -
I am busting moves rn. I'm in the bathroom but the surge of energy is making me pump my arms like the time Leo Messi scored a clutch winner against Valencia in 2019
Remember the plugin I referred to in this rant? https://devrant.com/rants/6019851/...
Yup! I managed to subdue that fossilised codebase. Effected all changes required. To have a rough idea about how ancient the code is, its classes use constructors predating PHP 5. It throws away the ~15 years of autoloading, view templates, routing engines, DI, ORMs (NO PDO!!), lower-cased multi word variable names, etc. I'm looking at SCRIPTS with raw functions north of 4-600 lines. The client insisted I zip the folder across
BUT! The good news is, we surmounted it. In fairness to them, it's commendable for one man to have pulled this off. The codebase is massive and appears to have been predominantly written by some Gideon dude. Who knows where he is now
There is one pattern I appreciate –something I wish Transphporm does–some segments of the rendered view are composed using class methods ie instead of having the HTML file mixed with templating syntax, you have class methods that receive the raw data. Then you can extend this class as you wish, overriding just the method that composes the segment you intend to modify. That was elegant to work with. But it can become dreadful if the class expects a specific structure of data (an array with weird keys) that you have no access to sourcing
So, I finally get to enjoy one good evening in 2/3 weeks. I called 2 friends to express an emotion that's not gloomy, but they were unavailable. Will probably get some sleep4 -
I do not like the Zig programming language. It looks like Javascript for unnecessary reasons and has some weird syntax.15
-
If you were to start making a lightweight, fast, multiplatform client app, architecturally clean and simple, with as little of the JS(style) libraries and packages and transpilers and weird convoluted and/or unpleasant syntax trends like JS or flutter...
ideally (or at least minimally) something at least as straightforward as making a WinForms app in C#
...what language/tool/platform/tech stack would you choose?
...asking for a friend with totally not an absolutely cool idea that needs to exist.11 -
have to use python and opencv for a uni project about lane detection in autonomous vehicles (just the detection with e.g. canny edge detection)
have begun to look into python in a 40min video seeing the differences between java and python, as i'm more comfortable in java....
well python is quite weird in its syntax but at the same time quite easy(?)
don't know what i should think about it 😕 as i'm used to the strict structure of java
any other good videos i can watch to get a better grasp of it?7 -
So here is a mini rant from an amateur/hobbyist developer (me).
Over the past week, I've taken on a project that is much larger than any other projects i've attempted to handle (steam trading bot). This meant that there would be logic flaws, weird bugs due to unexpected behavior from shitty web apis (and their poor documentation hmmmm).
Anyhow, fast forward a few days and the code is complete. It's mostly functional, apart from a few glitches and unexpected behavior here and there...or so i thought. Apparently if someone trades and item to me that isnt in my pricegrid, the bot freaks out and kills itself, relaunches, and repeats this cycle (pm2). And i only found out about this on my way to school
So in desperation to fix such a critical flaw in my code (if my bot breaks a lot and doesnt accept trades, i can get banned from backpack.tf), i bust out my only device which is my phone, and start editing away (JuiceSSH and turbo client is godsend ty). 30 minutes later, after toiling through code with no indentation or syntax highlights (mobile pls), ive fixed it. So i push to live and alls well.
Then I arrive at school, pull out my laptop and decided to check up on my code to see if anything needs fixing.
Oh look in one line i used '||' instead of '&&'.
ok lets fix it.
ok lets push to live again.
I launched WinSCP to move the files onto the server, and just as the loading bar finishes and the file is overwritten, i realized; FUCK the code i had on my laptop wasnt the latest version i just worked on on my phone.
So that's that. 30 minutes of typing code without indentation and syntax highlighting on a 5 inch screen and it's all gone.
TLDR:
Version control is a must. -
#Suphle Rant 7: transphporm failure
In this issue, I'll be sharing observations about 3 topics.
First and most significant is that the brilliant SSR templating library I've eyed for so many years, even integrated as Suphle's presentation layer adapter, is virtually not functional. It only works for the trivial use case of outputting the value of a property in the dataset. For instance, when validation fails, preventing execution from reaching the controller, parsing fails without signifying what ordinance was being violated. I trim the stylesheet and it only works when outputting one of the values added by the validation handler. Meaning the missing keys it can't find from controller result is the culprit.
Even when I trimmed everything else for it to pass, the closing `</li>` tag seems to have been abducted.
I mail project owner explaining what I need his library for, no response. Chat one of the maintainers on Twitter, nothing. Since they have no forum, I find their Gitter chatroom, tag them and post my questions. Nothing. The only semblance of a documentation they have is the Github wiki. So, support is practically dead. Project last commit: 2020. It's disappointing that this is how my journey with them ends. There isn't even an alternative that shares the same philosophy. It's so sad to see how everybody is comfortable with PHP templating syntax and back end logic entagled within their markup.
Among all other templating libraries, Blade (which influenced my strong distaste for interspersing markup and PHP), seems to be the most popular. First admission: We're headed back to the Blade trenches, sadly.
2nd Topic: While writing tests yesterday, I had this weird feeling about something being off. I guess that's what code smell is. I was uncomfortable with the excessive amount of mocking wrappers I had to layer upon SUT before I can observe whether the HTML adapter receives expected markup file, when I can simply put a `var_dump` there. There's a black-box test for verifying the output but since the Transphporm headaches were causing it to fail, I tried going white-box. The mocking fixture was such a monstrosity, I imagined Sebastian Bergmann's ghost looking down in abhorrence over how much this Degenerate is perverting and butchering his creation.
I ultimately deleted the test travesty but it gave rise to the question of how properly designed system really is. Or, are certain things beyond testing white box? Are there still gaps in the testing knowledge of a supposed testing connoisseur? 2nd admission.
Lastly, randomly wanted to tweet an idea at Tomas Votruba. Visited his profile, only to see this https://twitter.com/PovilasKorop/.... Apparently, Laravel have implemented yet another feature previously only existing in Suphle (or at the libraries Arkitekt and Deptrac). I laughed mirthlessly as I watch them gain feature-parity under my nose, when Suphle is yet to be launched. I refuse to believe they're actually stalking Suphle3