Details
-
AboutPolyglot Programmer
-
SkillsElixir, Go, Java, C#, Erlang, Haskell JavaScript, PHP, Ruby, Python, C
-
LocationSan Jose
Joined devRant on 8/4/2016
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
-
@linux-colonel Software evolution comes out of real needs and necessity. The whole point of technology evolution is to have something better than the previous technology. What does better mean? Is it just some overly designed architecture that produce exactly the same output as the previous architecture?
The point of evolving to a better technology is so that we can do more with less. We can improve maintainability and increase efficiency. If your implementation brings none of that then it is an exercise in liberal arts like drawing or arch-making purely for aesthetic reason.
So after wasting everyone's time you will end up with nothing marginally better than what you previously have. How is that improvement? And what is the threshold so that another person will not waste everyone's time again with another fancy plan?
it probably make sense if you are in research fields . If you are serving enterprise clients it quite irresponsible to do that. -
@linux-colonel No man I get you. I don't know if I share the same outlook about technology with your senior.
AOP certainly has it's place just like every other tools,frameworks and libraries. I'm not dissing it. A lot of people like your senior do exist not denying that.
I managing a startup company and also the principal architect. We use range of techs from Object Oriented to functional realm. Java, Go, Python to Elixir and Elm. I'm not averse to learning new tech.
I used to run a Java consulting firm. This was during Java EE heyday circa 2000-2010. We embraced the whole Spring ecosystem after it is clear to us it can reduce our development time and make the maintenance lightweight vs J2EE (EJB2 & the gang). We did this several times with other techs when it make sense to do so. Whatever it is, it must have net benefits, increase the company bottom lines or efficiency and make our lives easier. If you can justify it then no problems. Otherwise it is an exercise in futility. -
@linux-colonel You can't just simply implement something because you can. There must be justification on why the company should spend additional resource to implement anyone's favorite tool. Sure there are reasons to use other tools the logic here is what tangible benefit is that tool going to bring to the company. The fact is you need to justify your advocacy of the tool of your choice in the angle of productivity. You can't just shove something for no strong reason. Architecture for architecture sake is not a good enough reason to do it. The benefits has to match the labor and time cost that will be imposed on everyone. If you can demonstrate how AOP can make a huge impact in terms of productivity and cost savings, I'm sure it will be very hard to resist. You need to understand there are many other methods and tools other than AOP. investing time and labor in any of them requires a lot of consideration when you are talking about enterprise implementation.
-
@Yankeesrule Sounds like the hall of fame of the scariest places for programmers to be in material. If Jurassic Park is any guide, don't mess with dinosaurs man. Run for your life!
-
Reminds me of the pleasant experience of a failed install of loopback.io. It became a massive pain when I tried to get it removed. The modules were nested so deep, no Windows tool can delete it. I had to descend deep inside the nested structure until I get to the maximum allowed file path length for a delete operation to run and repeat it on every branch.
I would have written a small tree traversal delete program to do that for me if not for the fact that I'm a complete rubbish when it comes to algorithms and it would have taken me at least 4 hours to do that.
Turned out deleting the whole thing took me a good 7 hours. I thought Fuck! had I written the the program. The whole ordeal would have not been a completely lost battle.
The next time it happened, I suddenly remembered Google and downloaded some neat recursive delete program someone put up online. -
What can AspectJ accomplish that vanilla code can't? Is the cost of implementing AspectJ project wide in terms of billable learning curve hours and the time that will be spent on recruitments is significantly better than implementing the same thing in vanilla Java code?
10 years ago we refactored a huge code base to use JBossAOP. Needless to say adding another layer to what is already convoluted OO and Enterprise stack alphabet soup was really painful.
I also recalled struggling with Spring Roo because one of the senior dev was in love with it. With AOP you have to trust those dependencies will be there during compile time. Unless of course everybody use an IDE tailor made for it.
There is a reason why AOP didn't really take off. It adds another layer of complexity that people don't really need. -
@khaledh Oh that's great! I keep finding more and more people who think just like us :D. I can smell the revolution coming!
-
@khaledh Since you mentioned F#, I learned something very important from functional languages these past few years. In OO we are big on modeling the world. We have all these language artifacts that helps us with that. The logic of the business rules we are coding for is inherently second class.
Our OO instinct is to first map all the business object and the graph traversal of relationships etc. When we start mapping the business rules the flow now interleaved with the code necessary to instantiate objects and making sure dependencies and states are setup properly. Look at majority of large OO projects out there. The business flow is not a first class citizen unless we use some third party orchestration platform like BizTalk, ESB etc.
My recent venture into Haskell, Erlang Elm and Elixir taught me the superior way is to make the business flow front and center and model only when needed. Which is a real eye opener for me. I think it is high time for functional languages. -
Being a polyglot developer, I completely understand your perspective. These languages and frameworks grow out of different cultural and philosophical background.
Nevertheless, all these different camps learn from each other continuously. Which is a really nice and healthy way for everyone to evolve. I don't think there will be a pleasant language such as C# if languages such as Java haven't shown us what works and what not. I definitely agree that a strong and static type language helps a lot in large projects. I also believe there are a lot of situations where dynamic languages is the right thing to use.
I think there is a huge market for tooling in the dynamic language world. I would love to build debugging and other useful tools to replicate the the .Net and Java side in the dynamic world. Unfortunately I barely have time for anything. I envy people who seems to be able to make other stuff out of their professional time. I really want to know their secrets. -
@spl0 Huh? Do you even know why there is an apprenticeship or industrial training? Is it to provide 100% free labor to unscrupulous companies at any cost or to add useful skills and knowledge to the students?
Now if there is any kind of serious value adding activities involved while they are slaving away it would have been less questionable. In this case, what skills have they gained there? Zilch. Get a bunch of kids to do 100% of the job and not having to pay nuts and still act like they owe you their diploma? That's pretty ignorant shit right there.
What is more pathetic is that we have people trying to justify that with some illogical reasoning like insurance? Are you kidding me?
I do run my own business and when we accept students, we make sure they go through our industrial training program. They get paid for their efforts and meals are on the house. We don't believe in such unethical practice of taking advantage of students like that. But obviously some people do. -
"I strongly object the decision that you have taken. It is clear to me that the direction that you have taken is creating a huge problem. Case in point:
1. Bla bla bla bla
2. Bla bla bla bla
3. Bla bla bla
Let's deconstruct your reasoning and remove all ambiguities one by one for to clear everything once and for all. Please reply to each and every point below:
1. Yada yada yada yad
2. Yada yada yada yada
3. yada yada yada
I hope this conversation will can bring us out of this mess. We really need to do this the right way." -
Well played... <slow claps>
-
The company has contributed shit to your diploma. The only thing the company is good for is to serve as an example of what a cheapskate enterprise looks like and how to avoid them in the future.
-
@spl0 What commercial experience? Developing an app entirely with your schoolmates in the presence of a non-contributing company parrot is definitely not commercial experience.
Developing an app by yourself inside a building designated as business premise add nothing distinctively valuable compared to developing an app by yourself in any other type of premises.
What insurance? The risk of the parrot sitting in front of them knocking his head on the table while sleeping is higher than something happening to the guys coding fully awake. What a bizarre nihilist justification is that?
What favor did the cheap ass company gave to those guys? The company gained every benefit and loose nothing. These guys might as well develop the app in a garage somewhere and not lose any benefit not working in the company. -
It's about time someone create the next generation of word processor. I think a word processor based on Electron would be awesome but performance optimization would be troublesome.
-
THE ETHERNET CABLE.
The building where I worked was on fire. It quickly engulfed everything in it's path. Everyone else had left to safety but I stayed back as long as I can for that last critical git push. I jumped out of my desk just seconds before it was swollen by the fiery rage.
I rushed to the emergency stairways. Downstairs was burning. Suddenly, there was a loud rumbling. The rays of light coming through the slits in the wall was intermittent, disturbed by rotating rotors. "Anyone still in the building, please make your way up to the roof top!" A nervous but commanding loudspeaker voice was heard.
I burst out through the roof top door. The heli can't find a spot to land. My heart sank, I was sure I wasn't going to make it but something caught my eyes. I yanked a roll of cable from the SDF room to the left. In one miraculous feat I lassoed the swaying landing skid and bam! There I was taking selfie of myself hanging 500 feet in the air from a chopper on an Ethernet cable. -
Java certainly has it's place. Just don't use a hammer for everything.
-
@pptyasar No that is wrong. TypeScript is a language you can use it to build both angular or react app.
React is a view component technology it is the same thing as angular directive the view part of angular.
Angular is a full fledge application framework react is a component library you need to use something else like Flux or Redux to handle state and model changes.
So no comparing a language with a framework is just wrong. -
I strenuously object to that assertion!
No matter how alien a programming language maybe, it is still constrained by logic and syntactic rules. NO means NO, YES means YES. It is just some truth table piling up on a long traceable sequence of event. Ocassionally, some exceptions may appear.
Girlfriends on the other hand don't follow logic, Today's YES can mean NO tomorrow. Sometimes YES mean YES it can also means NO and there is a Quantum super possition where YES means both YES AND NO at the same time. There is also a forth and nth dimension of YES OR NO that is completely transient in nature like those sub-subatomic particles that exist in the immediate aftermath of a particle collision in CERN Large Hadron Collider where YESes and Nos alternates into infinite integrals of YESses and NOs that simply boggles your mind and will drive you insane.
The only way for the universe to stay balanced and sane is just to say I'm sorry at the end of everything. Exceptions is the norm! -
Damn, I've been there too. I hope you were able to pull things back together.
-
Oh shit! Why did I clicked ++! I'm married!!!
-
Dude, abandon JS go straight to Elm. Save yourself the pain and anguish.
http://courses.knowthen.com/courses... -
It is far easier for anyone to be a CEO than to be a developer or a programmer. Bossing around requires no special training. The only skill you need to be a CEO is an acting skill to appear wise, knowledgeable without really knowing anything. Surround yourself with people who actually perform all the works and just pretend you have a hard difficult day everyday and tell yourself what an epic CEO you are. Next, start giving advice to your kids. nephews and nieces how programming isn't really a thing becase you get shit done just bossing around.
-
That last few words caught me by suprise. I hope you will be cleared of anything even remotely connected to it.
-
Hey! my other hand is busy! I can't simply disturb that guy!
-
Man, I totally feel you. Happens to me many times. Just do it for the fun part of it. When it starts to feel like a burden, take a time out as long as you need until you feel the itch to continue again. Don't push too hard nothing good will come out of it.
-
One of my weakness is I'm brutally honest when it comes office politics. That manager would not survive that meeting if that was me.
-
Haha! that is the quintessential programmer right there my friend. Sometimes it's the stupidest things that escape us. We all get stuck all the time in the privy of our homes or while live coding in conferences in front of everyone Rock star programmers or not!
-
It is easy to recognize specific, well defined, done before, examples. It's easy to do easy stuff until you need to dig deep inside Naive Bayes classifier or Support vector machine and decision tree learning. Then you will know why companies spent millions with a team of researchers in years time building a solution.
Sounds like your manager is one of those people who think movie hackers are real programmers and Sirri can be replicated in 30 days and Pokemon Go in a week. -
Get the fuck out of there quiiiiiiiick!!!