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
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "i love oop"
-
WWDC was not about developers this year. It was a conference call with shareholders and investors. No bold moves, just several consecutive "this product will no longer suck" and "look at what you can do now, big companies" announcements.
watchOS will work now (it's too slow ATM). tvOS will just be less cumbersome. macOS still lagging behind (I mean, I already have great third party apps that clean my hard drive, but thank you for solving a problem I didn't need fixing). iOS 10 is simply about messages (it's not going to make me ditch Telegram, because it doesn't have an Android client, regardless of how large you make emoticons appear on screen). Apple Music will still suck, especially if you have more than one Apple ID. And Apple Maps will continue to be useless outside of the US.
Where did the bold moves go? Where's the "we're breaking up iTunes into several distinct apps that serve their purposes really well"? (Guess iTunes is too valuable a trademark...) Where is the "we will end the WKView vs UIView vs NSView nonsense"? (You know, OOP is about creating classes, which are abstractions and whose instances deal with the particularities of their environment; a View is a View, regardless of where they live; an instance of a View should care about being on a watch or on a phone, not the developer.) Where is the "we love indie developers and will help you"? They showed off a lot of integration with well established apps, that don't really need to stand out any more. They showed that video of "normal people" who have developed apps, but no one knows about them! And then they changed the AppStore so you can pay to advertise your app, but who has the means to do that? Indie devs are surely on a tight budget, so who's that helping again?
For me, this WWDC was sugar coated with a "we love you developers" BS, but was a business statement to large companies ("see what you can do now Uber, Lyft, WeChat, WhatsApp, Doordash, all the P2P payment apps, ESPN, WSJ and so on?"). It's already a known fact that the bulk of the AppStore revenue goes to the top 1% apps. And what's the point of having tvOS be open to developers if it is very unlikely I'll ever develop anything for it unless I work at CBS?
It's great that they want to make it easier for kids to learn Swift. But there's very little point in that, if those kids' apps aren't going to be used and are simply going to make the "we have 2 million apps on the AppStore" announcement look shinier for shareholders. Without a strong indie community, the Swift Playgrounds app for the iPad is just manufacturing workers for large corporations.
And without a strong indie community, things get tougher for indie clients as well. Who will have the money (and therefore the time) to implement all those integrations in order to even dream about competing with heavily funded apps?
Yeah... So thanks, Apple, but no thanks.16 -
Let the student use their own laptops. Even buy them one instead of having computers on site that no one uses for coding but only for some multiple choice tests and to browse Facebook.
Teach them 10 finger typing. (Don't be too strict and allow for personal preferences.)
Teach them text navigation and editing shortcuts. They should be able to scroll per page, jump to the beginning or end of the line or jump word by word. (I am not talking vi bindings or emacs magic.) And no, key repeat is an antifeature.
Teach them VCS before their first group assignment. Let's be honest, VCS means git nowadays. Yet teach them git != GitHub.
Teach git through the command line. They are allowed to use a gui once they aren't afraid to resolve a merge conflict or to rebase their feature branch against master. Just committing and pushing is not enough.
Teach them test-driven development ASAP. You can even give them assignments with a codebase of failing tests and their job is to make them pass in the beginning. Later require them to write tests themselves.
Don't teach the language, teach concepts. (No, if else and for loops aren't concepts you god-damn amateur! That's just syntax!)
When teaching object oriented programming, I'd smack you if do inane examples with vehicles, cars, bikes and a Mercedes Benz. Or animal, cat and dog for that matter. (I came from a self-taught imperative background. Those examples obfuscate more than they help.) Also, inheritance is overrated in oop teachings.
Functional programming concepts should be taught earlier as its concepts of avoiding side effects and pure functions can benefit even oop code bases. (Also great way to introduce testing, as pure functions take certain inputs and produce one output.)
Focus on one language in the beginning, it need not be Java, but don't confuse students with Java, Python and Ruby in their first year. (Bonus point if the language supports both oop and functional programming.)
And for the love of gawd: let them have a strictly typed language. Why would you teach with JavaScript!?
Use industry standards. Notepad, atom and eclipse might be open source and free; yet JetBrains community editions still best them.
For grades, don't your dare demand for them to write code on paper. (Pseudocode is fine.)
Don't let your students play compiler in their heads. It's not their job to know exactly what exception will be thrown by your contrived example. That's the compilers job to complain about. Rather teach them how to find solutions to these errors.
Teach them advanced google searches.
Teach them how to write a issue for a library on GitHub and similar sites.
Teach them how to ask a good stackoverflow question :>6 -
I've seen several rants about dumb/useless teachers, college and the CS degree studies; today is a good day to vent out some "old" memories.
Around two semesters ago I enrolled in a Database seminar with this guy, a tall geek from the 80's with a squeaky voice, so squeaky mice could had an aneurysm if they listened to him.
Either way this guy was a mess, he said he was an awesome coder, that we were still "peasants" when it came to coding, that relational databases had nothing on him since he was an awesome freelancer and did databases every day, that we had to redo the programming course with him and with his shitty, pulled out of the ass own C++ style guide with over 64 different redacted rules.
He gave us sample code of "how it should be done" in Java...it ain't my favorite language but fuck me a fucking donkey could have written better code with his ass!! He even rewrote Java's standard input function and made it highly inefficient. He still wrote in a structural paradigm in OOP languages! And he dared to make this code reviews were he would proyect someone's code and mock it in front of the class as he took off points, sometimes going to the negative realm (3,2,1,0,-1...)
But you know what's shittier? That he actually didn't even attend, 90% of the time, it was literally this:
> Good morning class
> Checks attendance. . .
> I'll be back, I'm going to check in...
> 1 hour 45 minutes later (class was 2 hrs long) - comes back
> do you have any doubts?
> O.o no...? I'm ok.
> We're done
Not only that, he scheduled from 4 to 17 homeworks throughout the week, I did the math, that was around 354 files from everyone; of course he didn't check them, other students from higher semesters did and they gained each point taken from students making students from lower semesters get the short end of the stick.
How did I pass? He didn't understood my code or database schema and he knew he couldn't fail me as he had no ground to stand on.
Thanks for listening, if you got to the end of this long ass post and had a similar experience I'd love to read it.13 -
Functional Programming literally has 'fun' in the title; OOP is one letter away from 💩. I rest my case.4
-
last semester i was working as assistant professor teaching Basic OOP Subject. and my girl happens to be enlisted as my student. One day she was late for my class and get in without a permission. so i ask her
Me : Why don't you knock the door?
Her : Why should i ?
Me : did i give you my permission ?
Her : Public class doesn't need permission. our class is not Private.
oh my god i'm so in love with her2 -
In PHP (yes, it's a language I... don't hate) I've always hated exceptions. They're like GOTO, in an OOP world with interfaces and contracts, try/catch is really odd as it breaks a promise about returning with a typed value.
But you can now do this in PHP8, which comes pretty close to Maybe/Either monads (Option, Result whatever it's called in other languages):
function getUser(): User | UserNotFound
PHP8 unions don't come with the same strong guarantees as in other languages but *pets PHP gently on the head* you did well, my boy.
Now I would really love it if PHP9 could do:
function getUsers(): Collection<User>
Type Tree<T> = Null | Node<T>;
function 🎄(): Tree<Branch<Ornament|Light|null>>15 -
I sincerely like the moment, when i train a newbie to code .NET showing him/her how far OOP in .NET goes.
I love to give the following example:
var s = "round and round it goes";
s = s.ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString();
And yeah. It's totally fine.
Because each component of .NET is inherited of object. And the class object supports you with the function "ToString()".
After that, in most of the cases, i get a slightly irritated look from the newbie.
Than i say, "welcome to Microsoft" ;)
I finally add, that the compiler of .NET finally identifies duplicate results and refactores the given code before execution ^^
Coding Is fun, as long as you get the big picture/concept of the language you're using.2 -
Feeling sick as fuck. Stayed home instead of going to work but I am already upstet about what is happening whilst I am not there.
The manager was gracious enough to task the other developers with creating the templates for one of our projects. I submitted a document before stating our design guidelines and how under no circumstances they should not use bootstrap for the design since none of them know how to manipulate the source code enough to deviate from the standard bootstrap design. The lead developer, even tho I love the dude, has an attitude against new tech. He is primarily and only a php developer still in love with just jquery and php with no real knowledge of proper design methods. He is the kind of dude that would tell you that pdo is a waste of time and that why should we create models and use oop to separate our code into manageable files.
Today I get "why should we not use bootstrap" and shit like that.
Sigh.....i really don't want to see the shitstorm waiting for me tomorrow.
Funny how our cms administrator is eager to learn the list of technologies i proposed. They both gor Programming Ruby, the pickaxe holy book of Ruby and the dude is already halfway through it while the other developer is still asking why should we even bother when we have php.
I get the idea of if it ain't broken don't fix it and being proficient with one stack and whatnot. But that idea of i dont want to learn something new is precisely what shuts down progress.1 -
A T.A. in my university.
He's kind of a java expert and the class was about advanced oop principles.
But the way he coded live in class and spoke clearly how he approaches the problems was the best thing that I got from the class.
Needless to say, nearly everyone that enrolls in that class, starts to love java afterwards xD1 -
Most Incompetent co-worker. It was me during my first job. Not humble bragging or some shit. I was straight out fucking incompetent during my first job.
Hear me out.
I graduated my diploma course specialising in networks(from computer to cellular/telecom networks) but I did a few programming courses and my internship was at a lab - did iOT stuffs with raspi and arduinos. I am a A+ student so was giving priority to choose a better internship place. Fun time. So I fell in love with programming. As soon as i graduated I applied for a Java job. Got a job at a domain name reseller/hosting company using java EE. Remember my programming = very basic/OOP concepts/basic SQL knowledge. That's it.
I am that little childish fucker who thought he knew everything and I kept interrupting my coworkers with stupid questions.
Same time, I was under the darkest moments of my life with some family drama/tension headaches.
2 months into the job, one coworker really got pissed off with my interruptions and bluntly told me "*my name,you are stupid aren't you"
The manager was a really nice guy. I will forever thanks him for his advices. He knew I was struggling with family shits and gave me another 3 months probation period to redeem myself. But I gave up. That was back in 2015.
It was a great place I fucked it up. But I learnt precious life lessons. I was young,stupid and didn't know how to handle stress.
I thanks myself for not quitting programming after that experience.2 -
When I was in college OOP was emerging. A lot of the professors were against teaching it as the core. Some younger professors were adamant about it, and also Java fanatics. So after the bell rang, they'd sometimes teach people that wanted to learn it. I stayed after and the professor said that object oriented programming treated things like reality.
My first thought to this was hold up, modeling reality is hard and complicated, why would you want to add that to your programming that's utter madness.
Then he started with a ball example and how some balls in reality are blue, and they can have a bounce action we can express with a method.
My first thought was that this seems a very niche example. It has very little to do with any problems I have yet solved and I felt thinking about it this way would complicate my programs rather than make them simpler.
I looked around the at remnants of my classmates and saw several sitting forward, their eyes lit up and I felt like I was in a cult meeting where the head is trying to make everyone enamored of their personality. Except he wasn't selling himself, he was selling an idea.
I patiently waited it out, wanting there to be something of value in the after the bell lesson. Something I could use to better my own programming ability. It never came.
This same professor would tell us all to read and buy gang of four it would change our lives. It was an expensive hard cover book with a ribbon attached for a bookmark. It was made to look important. I didn't have much money in college but I gave it a shot I bought the book. I remember wrinkling my nose often, reading at it. Feeling like I was still being sold something. But where was the proof. It was all an argument from authority and I didn't think the argument was very good.
I left college thinking the whole thing was silly and would surely go away with time. And then it grew, and grew. It started to be impossible to avoid it. So I'd just use it when I had to and that became more and more often.
I began to doubt myself. Perhaps I was wrong, surely all these people using and loving this paradigm could not be wrong. I took on a 3 year project to dive deep into OOP later in my career. I was already intimately aware of OOP having to have done so much of it. But I caught up on all the latest ideas and practiced them for a the first year. I thought if OOP is so good I should be able to be more productive in years 2 and 3.
It was the most miserable I had ever been as a programmer. Everything took forever to do. There was boilerplate code everywhere. You didn't so much solve problems as stuff abstract ideas that had nothing to do with the problem everywhere and THEN code the actual part of the code that does a task. Even though I was working with an interpreted language they had added a need to compile, for dependency injection. What's next taking the benefit of dynamic typing and forcing typing into it? Oh I see they managed to do that too. At this point why not just use C or C++. It's going to do everything you wanted if you add compiling and typing and do it way faster at run time.
I talked to the client extensively about everything. We both agreed the project was untenable. We moved everything over another 3 years. His business is doing better than ever before now by several metrics. And I can be productive again. My self doubt was over. OOP is a complicated mess that drags down the software industry, little better than snake oil and full of empty promises. Unfortunately it is all some people know.
Now there is a functional movement, a data oriented movement, and things are looking a little brighter. However, no one seems to care for procedural. Functional and procedural are not that different. Functional just tries to put more constraints on the developer. Data oriented is also a lot more sensible, and again pretty close to procedural a lot of the time. It's just odd to me this need to separate from procedural at all. Procedural was very honest. If you're a bad programmer you make bad code. If you're a good programmer you make good code. It seems a lot of this was meant to enforce bad programmers to make good code. I'll tell you what I think though. I think that has never worked. It's just hidden it away in some abstraction and made identifying it harder. Much like the code methodologies themselves do to the code.
Now I'm left with a choice, keep my own business going to work on what I love, shift gears and do what I hate for more money, or pivot careers entirely. I decided after all this to go into data science because what you all are doing to the software industry sickens me. And that's my story. It's one that makes a lot of people defensive or even passive aggressive, to those people I say, try more things. At least then you can be less defensive about your opinion.53 -
There are a couple of them to list! But to sum my main ones(biggest personal heroes):
John McCarthy, one of the founding fathers of Artificial Intelligence and accredited with coining such term(sometimes before 1960 if memory serves right), a mathematical prodigy, the man based the original model of the Lisp programming language in lambda calculus. Many modern concepts that we have in programming where implemented in one way or another from his systems back in the day, and as a data analyst and ML nut.....well I am a big fan.
Herb Sutter: C++ programmer extraordinaire. I appreciate him more for his lectures and published articles than anything else. Incredibly smart and down to earth and manages to make C++ less intimidating while still approaching it with respect.
Rich Hickey: The mastermind behind Clojure, the Lisp dialect for the JVM. Rich is really talented and his lectures behind his motivations and reasons behind everything he does with Clojure are fascinating to see.
Ryan Dahl: Awww shit y'all know how it is. The man changed web development both in the backend and the frontend for good. The concept of people writing their own servers to run their pages was not new, but the Node JS runtime environment made it more widely available to people by means of a simple to use language that was already popular with web developers. I would venture to say that Ryan's amazing contributions to JS made the language better, as it stands, the language continues to evolve and new features that make it overall better keep being added. He is currently building Deno, which would be a runtime environment for TypeScript, in Rust.
Anders Hejlsberg: This dude was everywhere man....the original author of Turbo Pascal and the lead of Delphi back in the day. These RAD tools paved the way for what would be a revolution in the computing world. The dude is also the lead architect and designer of the C# programming language as well as TypeScript.
This fucker is everywhere and I love it.
Yukihiro "Matz" Matsumoto: Matsumoto san is the creator of the Ruby programming language. Not only am I a die hard fan of Ruby, but of the core philosophies that the man keeps as the core of his language design: Make the developer happy, principle of least surprise. Also I follow: minswan which is a term made by the Ruby community that states Mats is nice so we are nice. <---- because being cool to others is better than being a passive aggressive cunt.
Steve Wozniak: I feel as if the man does not get enough recognition...the man designed the Apple || computer which (regardless of how much most of y'all bitch and whine) paved the way for modern micro computers. Dude is also accredited with designing one of the first programmable universal remotes(which momma said was shitty) but he did none the less.
Alan Kay: Developed Smalltalk and the original OOP way of doing things. Smalltalk as a concept is really fucking interesting. If you guys ever get the chance, play with Pharo, which is a modern Smalltalk. The thing is really interesting and the overall idea of Smalltalk can be grasped in very little time. It sucks because the software scales beautifully in terms of project building, the idea of hoisting a program as its own runtime environment and ide by preserving state through images is just mind blowing to me. Makes file based programs feel....well....quaint.
Those are some of the biggest dudes for me. I know that the list is large, but I wanted to give credit to the people that inspired me the most. Honorary mention goes to other language creators and engineers of course, but it would be way too large to list!9 -
[DISCLAIMER : Potential Troll Topic here] I am self taught python and js (not considering myself as a real developer as I don't push much on github and work in a complete other field than anything related to CS right now) and would be interested to learn another language, with another paradigm. So, as I love you all, I would be interested In your highlights as I am currently considering either C, C++, Rust or Go.
with C, I know I could interface it with python. With C++ (despite Linus considering it evil) I know I could interface it with Node. I don't know currently what to do with Go, but some people seem really enthusiastic about it (not really relevant I know) and Rust seems like the C of today, with a bunch of new cool kid stuff. My main goal, after all, is to learn something new, to have another sight on programming. Either understanding more about hardware or learning another way of coding (like different from oop).
I know it sounds like a troll, but I promise it's not, just a serious genuine question (hopefully it won't be closed here like on SO)
So what do you think devranters ?
Being eternally grateful to all of you, I wish you a good night.10 -
C++99, C++03, C++11 and C++14
I love when your design finally ends up working, looks good and it's running as fast as Usain Bolt, but why the hell does OOP has to be so ugly and clunky in C++? Constructors and copy constructors designs are barf inducing. Yes I am trying to make it as readable and neat as possible but it still looks like shit overall. And related compiler errors are almost always retarded or unhelpful even though I'm used to it now.
I know you will tell me "why are you using those old ass versions?". Well unfortunately in embedded you are stuck with old crap until some envoy of the gods finally up the standards... or if I do it myself for a specific platform.2 -
How are Coding Bootcamps and what are they like?
A little background:
I’ve been going to a University (have a year left for a CS degree) and I am so EXTREMELY frustrated. I thought I would get an education but it’s so underwhelming. 95% of it doesn’t involve programming and the classes that do are so elementary that I know more than the professors. By the end of my web design course we had been taught to center text, insert images, insert links, and how to use tables with a single day on CSS using colors.
The OOP courses are all the same, learn variables, types, conditionals, loops, classes, functions, and so forth. Python, C++, and Java. I taught all this to myself when I was 15, I’m 29 now.
I’ve recently gotten extremely interested into full stack web development. .NET Core, React, Typescript. I’m also working with Electron. I’m basically 100% self taught and spend almost every waking moment trying to learn more and apply it.
There’s only one person at my school who has the same passion as me and he’s the president at the coding club but is going into machine learning and big data (I’m the Secretary) and I just wish I could interact with more people who have the same passion. I would love to be challenged. I feel as if I spend more time trying to learn and diagnose problems then applying my knowledge because web development is so complicated when it comes to connecting everything together and I’m still relatively new to it (started like 4 months ago). I’m an extremely fast learner and extremely dedicated so I’m not worried about that being an issue.
I just really want to be a part of a community where I have people who can answer my questions and I don’t have to spend hours or days on google finding a solution to integrating Webpack or using typescript with react, and more. I want to feel challenged.
Can I get this from a boot camp? I recently listened to a podcast from Syntax and it really excited me but I don’t want to be let down again. Either way I’m finishing my degree to get that bullshit $60000 piece of paper but I wouldn’t mind taking a couple months off for something like this if it’s worth it.
I live in CO so if you have any Bootcamps in CO that you recommend, I’d love to hear it and take a trip to check it out in person.
Thanks a bunch!10 -
So I've been programming for a while now in various languages like C#, JavaScript, etc. I have never understood how to do OOP until I watched the MVA videos on Microsoft's website and I have to say, its made me love C# more and made things so much easier to understand!
I'm already thinking about rewriting my personal projects from scratch lol. -
Lua users, have you used moonscript?
It's a little language that has it's own interpreter or can be compiled down to Lua and it's absolutely lovely (currently using it with Love2d).
Of course, as with most things, what I love about it also royally pisses me off sometimes.
For starters local has to be declared for variables, unlike lua.
Otherwise the variable goes to _
Also note, that some tutorials literally tell you the opposite.
all variables are local by default
unless you don't declare them
then they go to _ (throwaway)
Some tutorials get this wrong too.
all variables have to be declared local
except tables. failure to declare a table WITHOUT a local will cause things like
table.insert to fail with "nil" values for no god damn reason.
No tutorial I could find mentioned this.
Did you know we call methods with '\'?
By the way, we call methods with '\'.
Why? Who the fuck knows.
Does make writing web routes more natural though.
Variables in the parameters of new are declared and bound for you. Would have loved to know this before hand instead of trying
to bind to them like a fucking idiot.
Fat arrows are used to pass in self for methods.
Unless you're calling a method. Then you use backwards slash. This fact is unhelpful when you're a beginner and dealing with the differences between the *other* arrow, the backslash, the fat arrow, and the fact that functions can be called with or WITHOUT parenthesis.
And on that note..
While learning all this other shit, don't forget parenthesis are optional!
Except when they're not!
..Like when you have a function call among your arguments and have to disambiguate which args belong to the outer call and to the inner call! Why not just be fucking consistent?
But on the plus size, ":" is now used for what it should have been used for in the fucking beginning: binding values to keys.
And on the downside, it's in a language thats built on top of another language that uses it for fucking *method calls*, a completely
different fucking usage.
And better still, to add to that brainfuckery thats lost in the mental translational noise like static on a fucking dialup modem, you define methods with the fat arrow. Wait, was that the single arrow or fat one? Yeah the fat one. Fuck. But not before you do THIS shit..
someShit: =>
yeah, you STILL include the god damn colon just so when you're coming from lua you can do a mental double take. "Why am I passing self twice? Oh right, because fuck me, I decided to use moonscript." It's consistent on that front but it also pisses me off.
A lot of these are actually quality of life improvements disguised as gotchas, but when you're two beers in to a 30 minute headscratcher it sure doesn't fucking feel like it.
Nevertheless, once I moved beyond the gotchas, it was like night and day. Sure moonscripts takes a giant steaming dump all over the lua output, like a schizophrenic alcoholic athena from the head of zeus, but god damn, when it works it just WORKS.
Locals that act like locals? Check.
Sane OOP? Check.
Classes, constructors, easy access to class methods, iterators? Check, check, check, check, check.
I fucking hate ceremony. Configuration over convention is for cunts. And moonscript goes a long ways toward making lua less cunty.
If you've ever felt this way while using lua, please, give moonscript a try.
You'll regret it, but in a good way!6 -
!rant
I was propably 15 years old the first time i saw my friend coding html and and other related stuff i cannot remember! It intriqued me and i really wanted to learn it (i wanted to learn to hack.. xD..) but at the given time i wasn't happy in life and i was pretty much addicted to WoW..
So.. forward 12 years, where i had gone to the military, thought about becoming a physiotherapist, psychiatrist, korean translator and game designer.. oh and countless attempts from another friend to get me interested in c#.. i decided to start studying computers (software/hardware) at DTU (danish university).
That was rougly 8-9 months ago and i am now pretty decent in C, HTML, C++, Java, MySQL and koncepts about networks and OOP designs :).
I am super grateful to all the trial and errors throughout my life that have brought me to this place :)
Still 27, still has alot to learn, but i am really happy where i am right now. Even so, that i am spending my free time making my own projects :)
I also get super happy whenever i fix a bug of mine :p.
I truly believe that you will skyrocket to succes if you do what you love.
For me, i just discovered that part of myself a little late :)
Not sure what i hope to achieve with this post, but i hope it can give an insight into what people go through and yeah.. go for what you want!
Have a great time everyone!
And first !rant on this app!
I love all your rants! vs !rants4 -
So I have a job interview on Monday for a marketing firm that works on a LAMP stack. Not a problem, since that's what I learned on and I love linux, but I haven't seriously touched PHP for years. So now I'm going back to do a refresher on OOP PHP and I'm like, "what the hell is a variable variable?"
Wish me luck..4 -
Because of the amount of complaining I do at work concerning legacy php applications the HOD is trying to push for different technologies to use for backend services. We have met multiple times to discuss the proper way of handling the situation since there are a lot of very obvious things to consider regarding the push for a new tech stack. The typical names have come about, but my biggest issue will be training people for these stacks.
Testing environments with docker and so forth, push for CERTAIN applications to be more API centric and the use of better frontend frameworks that will remain standard for years to come(hard to bet on this one but I tend to orefer React) among other things are the topics of conversation.
Personally I would love to move the shop to something geared towards Golang, thing is, the lead dev is complaining about it saying that the training for a new language would just take time. After a couple of examples he is still not convinced.
I think its wrong of him to center himself on just PHP and JQUERY as the main development stack he uses and learning new things should be part of the job, I also have a case against the spaghetti code that results from just using vanilla php with no proper development practices(composer based systems, oop etc etc you get the gist)
In the end I am starting to think that it will become one of those "fuck off I am the boss" type of deal since I am going to be here after a long time and he has about 2 years before he medically retire.1 -
I always thought wordpress was ok, not great not terrible, from a coding perspective. Now every new framework I have worked on makes me see why Wordpress is on 40% of the internet.
Now I love wordpress not because of what it did do, but because of all the really stupid things it managed to avoid doing including: over abstraction, trend chasing, using "new transformative technology" that disappears in 2 years, breaking plugin economy with updates and making devs start over, making everything OOP for the sake of making everything OOP, making adding on a bit of code take multiple files of multiple formats and boiler plate code, boiler plate code, compiling dependencies, composer, twig, laravel, one page applications, react, angular, vue, javascript only stacks (MEAN), not letting you control sql queries, protected/private scopes and design that doesn't let you fix or alter bad code others did, and the list goes on and on.
Wordpress did a lot right, and devs should try learning from it instead of making more problems to solve. Sure it's not elegant, but you known what it does do? Focus on a solving a problem. Then it does. Without inventing new ideas or concepts to inject into the code and create new problems.
And you know what else? Hooks are actually very well implemented in Wordpress. I've seen it done much worse.
Honestly my main gripe with the entire platform is a slow moving to OOP for no reason and the database design should separate post type into different tables, the current design makes it less scalable for large data sets for multiple reasons so I'd fix that.5 -
YGGG IM SO CLOSE I CAN ALMOST TASTE IT.
Register allocation pretty much done: you can still juggle registers manually if you want, but you don't have to -- declaring a variable and using it as operand instead of a register is implicitly telling the compiler to handle it for you.
Whats more, spilling to stack is done automatically, keeping track of whether a value is or isnt required so its only done when absolutely necessary. And variables are handled differently depending on wheter they are input, output, or both, so we can eliminate making redundant copies in some cases.
Its a thing of beauty, defenestrating the difficult aspects of assembly, while still writting pure assembly... well, for the most part. There's some C-like sugar that's just too convenient for me not to include.
(x,y)=*F arg0,argN. This piece of shit is the distillation of my very profound meditations on fuckerous thoughtlessness, so let me break it down:
- (x,y)=; fuck you in the ass I can return as many values as I want. You dont need the parens if theres only a single return.
- *F args; some may have thought I was dereferencing a pointer but Im calling F and passing it arguments; the asterisk indicates I want to jump to a symbol rather than read its address or the value stored at it.
To the virtual machine, this is three instructions:
- bind x,y; overwrite these values with Fs output.
- pass arg0,argN; setup the damn parameters.
- call F; you know this one, so perform the deed.
Everything else is generated; these are macro-instructions with some logic attached to them, and theres a step in the compilation dedicated to walking the stupid program for the seventh fucking time that handles the expansion and optimization.
So whats left? Ah shit, classes. Disinfect and open wide mother fucker we're doing OOP without a condom.
Now, obviously, we have to sanitize a lot of what OOP stands for. In general, you can consider every textbook shit, so much so that wiping your ass with their pages would defeat the point of wiping your ass.
Lets say, for simplicity, that every program is a data transform (see: computation) broken down into a multitude of classes that represent the layout and quantity of memory required at different steps, plus the operations performed on said memory.
That is most if not all of the paradigm's merit right there. Everything else that I thought to have found use for was in the end nothing but deranged ways of deriving one thing from another. Telling you I want the size of this worth of space is such an act, and is indeed useful; telling you I want to utilize this as base for that when this itself cannot be directly used is theoretically a poorly worded and overly verbose bitch slap.
Plainly, fucktoys and abstract classes are a mistake, autocorrect these fucking misspelled testicle sax.
None of the remaining deeper lore, or rather sleazy fanfiction, that forms the larger cannon of object oriented as taught by my colleagues makes sufficient sense at this level for me to even consider dumping a steaming fat shit down it's execrable throat, and so I will spare you bearing witness to the inevitable forced coprophagia.
This is what we're left with: structures and procedures. Easy as gobblin pie.
Any F taking pointer-to-struc as it's first argument that is declared within the same namespace can be fetched by an instance of the structure in question. The sugar: x ->* F arg0,argN
Where ->* stands for failed abortion. No, the arrow by itself means fetch me a symbol; the asterisk wants to jump there. So fetch and do. We make it work for all symbols just to be dicks about it.
Anyway, invoking anything like this passes the caller to the callee. If you use the name of the struc rather than a pointer, you get it as a string. Because fuck you, I like Perl.
What else is there to discuss? My mind seems blank, but it is truly blank.
Allocating multitudes of structures, with same or different types, should be done in one go whenever possible. I know I want to do this, and I know whichever way we settle for has to be intuitive, else this entire project has failed.
So my version of new always takes an argument, dont you just love slurping diarrhea. If zero it means call malloc for this one, else it's an address where this instance is to be stored.
What's the big idea? Only the topmost instance in any given hierarchy will trigger an allocation. My compiler could easily perform this analysis because I am unemployed.
So where do you want it on the stack on the heap yyou want to reutilize any piece of ass, where buttocks stands for some adequately sized space in memory -- entirely within the realm of possibility. Furthermore, evicting shit you don't need and replacing it with something else.
Let me tell you, I will give your every object an allocator if you give the chance. I will -- nevermind. This is not for your orifices, porridges, oranges, morpheousness.
Walruses.16 -
Can anyone help me with this theory about microprocessor, cpu and computers in general?
( I used to love programming when during school days when it was just basic searching/sorting and oop. Even in college , when it advanced to language details , compilers and data structures, i was fine. But subjects like coa and microprocessors, which kind of explains the working of hardware behind the brain that is a computer is so difficult to understand for me 😭😭😭)
How a computer works? All i knew was that when a bulb gets connected to a battery via wires, some metal inside it starts glowing and we see light. No magics involved till now.
Then came the von Neumann architecture which says a computer consists of 4 things : i/o devices, system bus ,memory and cpu. I/0 and memory interact with system bus, which is controlled by cpu . Thus cpu controls everything and that's how computer works.
Wait, what?
Let's take an easy example of calc. i pressed 1+2= on keyboard, it showed me '1+2=' and then '3'. How the hell that hapenned ?
Then some video told me this : every key in your keyboard is connected to a multiplexer which gives a special "code" to the processer regarding the key press.
The "control unit" of cpu commands the ram to store every character until '=' is pressed (which is a kind of interrupt telling the cpu to start processing) . RAM is simply a bunch of storage circuits (which can store some 1s) along with another bunch of circuits which can retrieve these data.
Up till now, the control unit knows that memory has (for eg):
Value 1 stored as 0001 at some address 34A
Value + stored as 11001101 at some address 34B
Value 2 stored as 0010 at some Address 23B
On recieving code for '=' press, the "control unit" commands the "alu" unit of cpu to fectch data from memory , understand it and calculate the result(i e the "fetch, decode and execute" cycle)
Alu fetches the "codes" from the memory, which translates to ADD 34A,23B i.e add the data stored at addresses 34a , 23b. The alu retrieves values present at given addresses, passes them through its adder circuit and puts the result at some new address 21H.
The control unit then fetches this result from new address and via, system busses, sends this new value to display's memory loaded at some memory port 4044.
The display picks it up and instantly shows it.
My problems:
1. Is this all correct? Does this only happens?
2. Please expand this more.
How is this system bus, alu, cpu , working?
What are the registers, accumulators , flip flops in the memory?
What are the machine cycles?
What are instructions cycles , opcodes, instruction codes ?
Where does assembly language comes in?
How does cpu manipulates memory?
This data bus , control bus, what are they?
I have come across so many weird words i dont understand dma, interrupts , memory mapped i/o devices, etc. Somebody please explain.
Ps : am learning about the fucking 8085 microprocessor in class and i can't even relate to basic computer architecture. I had flunked the coa paper which i now realise why, coz its so confusing. :'''(14 -
dev && !rant
I am thinking about picking up a functional language. Currently I use Kotlin (and I fucking love that language) but I have to admit that it's support for functional programming is limited.
But I think their lies a certain beauty in fp and I want to do some project with it.
The 2 main problems are:
1. I have no experience in functional programming. I have no clue how to structure my program (potantialy without oop) and write clean testable code.
2. I don't know what language to use. Scala seems great since it has good IDE support and I like the Java ecosystem and Haskell seems to have more beauty but is missing that IDE support and it is very unfamilar for me.
So what do you guys think I should pick up? And how do I learn to write good software with it?17 -
C is love, C is life.
Great language.
I genuinely don't get why so many people are struggling with pointers, considering it's a pretty straightforward concept. I understand that they can be complex in simplicity, but the concept itself is much easier to understand than say, references in OOP languages(despite being the same thing under the hood).
I mean it's just a number like any other number, except that number is treated as a memory address, and the star(* - dereference operator) just takes a value, goes to the memory address that is the value, and takes a value from there.
I feel like most explanations and tutorials just try to over complicate it for no reason.27 -
New job is going exactly how I thought it would. The core code is actually pretty good but a lot more complex than what I’d dealt with before. I literally don’t know what I don’t know and my dev skills, especially OOP, are sub-par and I have VERY little time to brush up on them significantly before the big projects hit me like an oncoming train. If there is ANYONE else who has navigated this type of situation successfully, I’d love to hear your experiences.6
-
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 -
Week 1 day 3 and 4.
I didn't feel like I did a whole lot yesterday so I just pushed it into today. In the past I tried to program for hours everyday and expect to keep up my stamina for it but it didn't work so this time I'll just take days off every now and then and see if that works at all. Yesterday was one of those, the only thing I did was watch some videos on OOP and practice some more with OOP and recursion.
As far as today goes I started sketching our the ideas for my own personal app I hope to develop once I get the skill set. I tried to focus on looking at it not just from the perspective of a developer but also a user and a marketer to see vialibity and such but I have a LONG time to go before I can get my idea rolling. I decided to push starting the actual course until tomorrow because Ina small questionnaire before you go into it it asks if you're familliar with threading and networking, which I am not. So that was my main focus today, expanding my base Java skill set. If any Android Devs can give from their experience want I need to know I would love that but other than that I feel pretty good about what I did today. -
I was aspired to be a graphic designer back then when I was in primary school, playing with all the fancy Photoshop filters. Then I got sick of static images, move on to Flash (just before it died violently). I self learn the ActionScript by myself and fall in love with programming. Not the usual language to begin with, but it kinda form my basis in OOP concept.
I still have that thick ActionScript 3.0 bible with me. Keeping it so I can always remember the first time I broke my geeky virginity. -
So in Udemy, I am learning about OOP in Java, and the next lecture is a big challenge in making a program with all the knowledge I have learned. I understand each concept, its just its a lot to memorize, however, I get the jist of it (You've ever had that feeling?). Anyways, I started writing notes on what each concept basically was and I began with composition. Now honestly I love composition and I just learned it a while ago. It is actually the most confusing thing I have learned in Java so far, as a few months ago when I was practicing Java I didn't understand it at ALL and I stopped coding for like half a year after (I'm back bebe don't worry). So I make my notes on composition and I realize, dang, I understand this a lot more than I thought. I thought this because what I did was make a file in Eclipse (not a class, a file) and I just started writing code without auto-complete like I was a mad lad. I made classes, fields, and I FEEL like I made my point about composition with the notes I also jotted down. Anyways, this was a part story and part what do you guys think of my notes on Composition. I think they are good and actually kinda detailed. Anyways thanks for reading this!
https://pastebin.com/bqL0CWjM