Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 366 367 [368] 369 370 ... 796

Author Topic: if self.isCoder(): post() #Programming Thread  (Read 903667 times)

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: if self.isCoder(): post() #Programming Thread
« Reply #5505 on: February 28, 2014, 07:58:59 pm »

I would probably not like to write C++ without an IDE :p
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

gnome42

  • Bay Watcher
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5506 on: February 28, 2014, 08:34:02 pm »


The field is full of older generations lamenting the behavior of the newer generations. Frankly, it's stupid. Insulting everyone who doesn't do things like you want isn't a great way to go about it.

It's an oft-repeated "joke", but you've never written Java without an IDE, have you? I have, and I would prefer an IDE that takes care of the lines and lines of boilerplate than have to remember all that shit myself.
Evidently humor is an art lost on the young. 

I am not lamenting the behavior of the next generation so much as the fact that they are being wasted and stunted by never being taught in school how to problem solve and how to understand the side effects any design decision has. 

We are hurting in my field for the next generation of engineers.
Part of it is that we tend to burn out 1 in in 3 prospects inside 18 months.
We lose to other parts of the company/longer term burn out, another 50% within 5 years.

When you are dealing with systems that are so complex we do not even trust someone to do more than simple tasks without looking over their shoulder all the time until they have been around for at least a year, possibly two, this really makes you wish that schools stopped concentrating on producing code grinders ( which have their place.  3/4 of the code in my company falls under what can be handled by them.  Hell, the entire "Y2K" scare never amounted to much due to code grinders. ) 

What we need industry wide is folks that understand the Art of Programming. 
And it is an art at it's core.
Proper design and language choice leads to code that can only be labeled "beautiful".
It flows
Ugly code is a direct result of a bad choice somewhere.
Could be in the basic design, could be in the language choice itself.  ( No language is perfect.  All of them suck.  Some just suck less for some tasks )

Do not confuse readable by a machine with Artful Beauty. 
Just because the IDE does not puke on it, does not mean it is good.
For that matter, I've seen code that would make any IDE shit itself in confusion that was just absolutely perfect.
It took advantage of perfect underlying decisions on layout of data, the language in question, and the compiler quirks from the system being used.

Was it readable?  Oh, hell no.  Not on first glance.  But once you sat back and thought about it, the only proper response was wonderment and the faint hope that one day you could achieve this level of understanding of everything that went into making this work.
And why it was complete shit if any one of six different things changed.

Programming is not about getting it to work.
I could get almost any 8th grader to achieve that for the simple cases.
Programming is more about the decisions made before you write a single line of code.

Sure, Eclipse may point out when you are calling a library function wrong, but it will do nothing to help you figure out why your frame rate is complete crap, or why it works fine in test and then falls over with production data. 

Those "Lines and Lines of boilerplate" possibly have a reason behind them. 
If you consider them to be a an annoyance, i would suggest you look harder at your preceding choices.

The language you know the best is the wrong choice. 
Or the correct one.
There are a lot of decisions that feed into that beyond the fact that the language de jour is what you are most comfortable with.

Give me someone that has only learned JAVA, but truly understands programming and common data structures, and when to use them, and I could guide them through writing from scratch a generic B-Tree implementation inside a month that would be production ready, in FORTRAN 66. ( I loath FORTRAN.  I used to write my numerical analysis assignment in C to get the output correct, then re-write them in 'F' to have the teacher understand them )

The language/editor is never the core point.  ( do better editors help, yes ) 
It is the basic understanding of how things work.
Beat your head against a wall for 20+ hours entirely due to the compiler being a psychotic little $INSULT even though there is zero reason for it to not work.

Those pricks that say "In my day" without firmly planting their tongues in their cheeks would be pricks no matter what.
The flip side of that is learning to tell the difference between a prick and someone that has learned from fucking things up.
Anyone who starts off with an obvious joke has most likely screwed something up in a far more interesting way that you should ever hope( or really have any desire ) to achieve.  ( Interesting being defined as costing your company on the top side of 1/2 a million due to a single line of code )

We all fuck up.
Anyone who claims differently is lying to you.
The big difference is how we react in those cases. 
( "I fucked up" vs "it is fucked up because of XYZ".  guess what?  nobody cares.   They can tell when you are covering your ass VS just stating that it was broke to begin with VS someone in your crew screwed it up, you missed it and will not outright sell them out as a scapegoat. )
The customer is only stupider that you think when you are defining specs.
They are always smarter than you think when things go wrong.

Those of us that have been doing this for years tend to wrap it in a twisted sense of humor since that is the only way we got to this point.

gnome



Logged

gnome42

  • Bay Watcher
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5507 on: February 28, 2014, 08:48:00 pm »

I would probably not like to write C++ without an IDE :p
Humor coming up:
Well there is your problem, even the designer of C++ admits it was a mistake.

gnome.

Really, research it,.  There are far better Object Oriented languages out there.

Logged

Mephisto

  • Bay Watcher
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5508 on: February 28, 2014, 09:47:32 pm »

Those "Lines and Lines of boilerplate" possibly have a reason behind them. 
If you consider them to be a an annoyance, i would suggest you look harder at your preceding choices.

I'm going to stop writing and rewriting and just be blunt - it's what I'm best at.

What do you mean by this? If you mean my preceding choice of language, then yeah. Most of my college experience was mandatory Java, which is not for me. I've found languages that can do everything Java can, but they do it better than Java does.

It's just a language, though. I'm not opposed to using a good tool if one exists - we use Solr quite extensively at work and it's pretty much the best tool for the tasks we use it for.


And now for my own anecdote: You've never truly lived until you've had to debug the full network stack live as your servers are sending out thousands of 500 pages per minute to angry and irate job seekers.
« Last Edit: February 28, 2014, 09:52:26 pm by Mephisto »
Logged

gnome42

  • Bay Watcher
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5509 on: February 28, 2014, 10:52:34 pm »

Those "Lines and Lines of boilerplate" possibly have a reason behind them. 
If you consider them to be a an annoyance, i would suggest you look harder at your preceding choices.

I'm going to stop writing and rewriting and just be blunt - it's what I'm best at.

What do you mean by this? If you mean my preceding choice of language, then yeah. Most of my college experience was mandatory Java, which is not for me. I've found languages that can do everything Java can, but they do it better than Java does.

It's just a language, though. I'm not opposed to using a good tool if one exists - we use Solr quite extensively at work and it's pretty much the best tool for the tasks we use it for.


And now for my own anecdote: You've never truly lived until you've had to debug the full network stack live as your servers are sending out thousands of 500 pages per minute to angry and irate job seekers.

We seem to be on the same page.  That was my third response. 
"It's just a language, though. I'm not opposed to using a good tool if one exists"
This is the thought process behind my posts.

That indicates that you have learned one of the more fundamental lessons that are the hardest to get.
The language is not the point. 
The design is what you aim for, every thing else falls out from there. 
If you walk into a mature system that already uses X to do stuff?  That is a design consideration.
But still only a consideration.
"We have always done it that way."
"It works." 
"It is the design choice of the week"
"We all know language X"
All of these should be suspect if they are the only reason for doing something that way.

Learning when to fight about shit designs and the results, and when to just give in is one of the hardest lessons to learn.

To look at the existing framework and realize that it is a result of short-sighted decisions and can be improved in the areas of XYZ, or frankly if we are going to keep doing this for more that a year we should shit-can everything and start from scratch because our long term support costs are greater than just doing it correctly from scratch.  ( and yes, what you wrote last year falls into this.   Improving over time is a good thing.   If you are not horrified by the decisions made five years ago, you have not grown and continued to learn.)
Does this sometimes entail very quietly working on a project without supervision and then presenting it as a mostly working piece? 
You bet.
Been there, done that.

There is always a better way to do things.
I am an entrenched, long term employee that knows our systems better than the people that wrote them in some areas,  since they may have wrote it, but they do not read it everyday to make it work in new and interesting ways.

I also have learned to listen to these folks when it counts.

You pick your battles.  Some you win, some you get stomped on for no better reason than "They outrank you.  Shut up and do it"  Which really sucks when you have already pointed out more reasons it is a bad idea than a good one.  ( even better when you have a cadre of folks pointing out even more reasons this is not a good idea, but politics plays far too much in these things many times ).

Pissed off customers, damages that will cost your employer $500,000+. 
It sharpens the mind.

gnome


Logged

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: if self.isCoder(): post() #Programming Thread
« Reply #5510 on: March 01, 2014, 08:14:22 am »

So d3 has smooth transitions for zooming! That's pretty awesome, and it makes my web app look very pretty...

except for some reason that if you try to zoom/pan normally (with the mouse) after a smooth transition, it "snaps" back to where you were before the transition.

Say, when I have a "Center" button that smoothly zooms out and centers the graph, if I try to zoom using the scroll button after clicking "Center", the graph snaps back to where it was before I centered.

here's a gist link if anyone is willing to look at it.

The relevant code are the functions center() and redraw(). The former is called when you press the Center button, the latter when you zoom/pan using the mouse, bound to the SVG graph.
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

MrWillsauce

  • Bay Watcher
  • Has an ass that won't quit
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5511 on: March 01, 2014, 08:27:52 am »

I am too dumb to appreciate it, but I love the name.
Logged

Dutchling

  • Bay Watcher
  • Ridin' with Biden
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5512 on: March 01, 2014, 08:31:41 am »

I am too dumb to appreciate it, but I love the name.
Logged

da_nang

  • Bay Watcher
  • Argonian Overlord
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5513 on: March 01, 2014, 02:03:53 pm »

Dat LOC. My eyes.
Logged
"Deliver yesterday, code today, think tomorrow."
Ceterum censeo Unionem Europaeam esse delendam.
Future supplanter of humanity.

MorleyDev

  • Bay Watcher
  • "It is not enough for it to just work."
    • View Profile
    • MorleyDev
Re: if self.isCoder(): post() #Programming Thread
« Reply #5514 on: March 01, 2014, 02:57:07 pm »

There are definitely better OOP languages than C++ from a designing point of view, and for a lot of situations those are better languages to use. A programmer who can only use one language is a carpenter who only knows how to use a single hammer. To quote myself from another thread:

C/C++ has largely been reduced to where it works best: High-performance programming (for example, intense number crunching and game engine programming) and low-level programming.
Java/Scala/C# have took the spot for high-load servers (services such as Twitter, and other high-load web APIs) and business application programming.
Ruby/Python/Scala/F# are good for a good majority of mathematical number crunching exercises.
Node.js, Ruby and PHP are taking the medium-low load servers (Blogs and other services with less intensive demands).

Whilst previously all programmers had was rocks to hit things with, tools are getting more refined and focused, as a result more diverse. This is a good thing.

For learning etc, sure not using an IDE is fine. For small throw-away coding a command line and a text editor are fine.

But if I was working on a project and didn't have an IDE, well...no. No. This is 2014, managing large code bases without tools is an exercise in stuffing one's own toe into a blender and trying not to scream.

Give me the ability to run unit tests from a single click, to rename a symbol just by hitting CTRL+RR, to bring a variable up as a parameter and have it automatically inserted into every usage of that function, to automatically import dependencies as I type the function names, to be efficient and productive without considering the pros and cons of replacing the beans in the coffee machine with cyanide pills.
« Last Edit: March 01, 2014, 03:03:01 pm by MorleyDev »
Logged

Mego

  • Bay Watcher
  • [PREFSTRING:MADNESS]
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5515 on: March 01, 2014, 05:12:17 pm »

Dear gnome:

Being older does not make you wiser or better. Being the creator of this thread does make me able to lock it if you want to keep continuing these non-constructive tirades. Please get off your high horse and your soapbox, or find somewhere else to preach.

Sincerely,
Mego

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: if self.isCoder(): post() #Programming Thread
« Reply #5516 on: March 01, 2014, 09:52:23 pm »

Dat LOC. My eyes.

The first file is just a json file though :(
The actual code is only 141 loc
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

da_nang

  • Bay Watcher
  • Argonian Overlord
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5517 on: March 02, 2014, 02:21:26 am »

Dat LOC. My eyes.

The first file is just a json file though :(
The actual code is only 141 loc
Oh.

* da_nang facepalms.

Well that makes sense.
Logged
"Deliver yesterday, code today, think tomorrow."
Ceterum censeo Unionem Europaeam esse delendam.
Future supplanter of humanity.

gnome42

  • Bay Watcher
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5518 on: March 02, 2014, 09:38:16 pm »

Dear gnome:

Being older does not make you wiser or better. Being the creator of this thread does make me able to lock it if you want to keep continuing these non-constructive tirades. Please get off your high horse and your soapbox, or find somewhere else to preach.

Sincerely,
Mego

I have been an ass and will attempt to refrain from doing so further.
Please do not lock the thread due to my improper actions.


gnome
« Last Edit: March 02, 2014, 09:41:17 pm by gnome42 »
Logged

gigaraptor487

  • Bay Watcher
  • Escaped Lunatic now civilised
    • View Profile
Re: if self.isCoder(): post() #Programming Thread
« Reply #5519 on: March 04, 2014, 12:18:24 pm »

Hello

I am planning on starting to learn some network programming with WinSock. However, I don't want to have to open sockets on my router and such but would like to test the programs. Is there a program which can emulate a LAN on one computer so I can see if the programs work, so I don't have to open ports on my router and play around with my other computers(some which run Linux, which I understand has different network architecture).

Thanks.
Logged
Hehe, you thought there would be an interesting sig here

I now run a program which brings old multiplayer games back to life : click
Pages: 1 ... 366 367 [368] 369 370 ... 796