Interesting conversation about web vs desktop development on ##c++
jtaby: not to be a jerk, but I think i'm going to be avoiding c++ post university
swmc: and if you think of virtual functions as tables of function pointers, =0 for pure virtual makes perfect sense
swmc: (not that you should have to)
aja: jtaby: If you want to be a professional programmer of any repute, hard to avoid it.
jtaby: aja: well, depends on the domain you work in
aja: jtaby: Not really. Even in exclusively java shops that I've worked it, the fellows with C++ background were the better programmers. They had a better grasp on the why, not just the how.
aja: jtaby: And, other programmers will tend to judge you on the languages you can code in.
fow !fs painter's
nolyc Shlemiel the painter's algorithm is O(n*n) for no good reason--the same task can be done in O(n) easily. See http://www.joelonsoftware.com/articles/fog0000000319.html
jtaby: Yeah i've read spolsky's essay on it
fow :)
swmc: I always spell Shlemiel wrong :|
jtaby: but that's not knowledge that's tied to c++
jtaby: c++ is just a language
jtaby: learning c++ doesn't mean your'e a more apt programmer
swmc: jtaby: C++ is pretty much the only systems programming language left, though, outside of perhaps ada for DoD contracts
aja: jtaby: True. But C++ is a very complex language that is used in a wide variety of high-performance domains. It's acceptable not to know it, but you will be judged by that fact.
jtaby: aja: The point I was trying to make is that in the web development world, c++ plays a much smaller role
aja: jtaby: True. But that's also a ghetto where you keep bad programmers, because everything is latency-bound.
jtaby: and it's true, learning the innerds of c++ will expose you to lower-level details that higher level languages just abstract away for you
jtaby: haha did you just diss all web developers?
swmc: jtaby: and the knowledge is what matters, but they only way to assess it, pretty much, is in programming languages that require it
aja: (correction: There are a lot of excellent web programmers. Unfortunately, they are a much smaller minority than in most other domains).
jtaby: but correlation != causation
aja: jtaby: Yes. But correlation is predictive.
jtaby: but not indicative
aja: jtaby: In other words, an excellent web programmer is an excellent programmer. An average web programmer is a poor programmer.
jtaby: aja: point taken
jtaby: but I feel like that's a result of high level languages, noit the web itself
aja: jtaby: Partly. But part of it is that, frankly, people don't seem to care as much. Google and Amazon are about the only companies, off the top of my head, that seem to truly care about high-performance and high-quality in web programming. Even Apple's cloud stuff is sub-standard.
aja: jtaby: Anyway, I tend to dismiss any programmer who hasn't seriously coded in multiple languages and multiple platforms.
swmc: jtaby: I think it's more due to the fact that web development is so dominated by thin wrappers over databases
aja: jtaby: Including higher level languages and web programs.
jtaby: aja: well, don't forget that the latency of web applications isn't in the processing time, rather with the fact that you're moving bits across the planets, as opposed to centimeters
jtaby: and the speend enhancements that amazon and google engage in are more in terms of load balancing and network setup rather than efficient programming, though that's very important for them
swmc: jtaby: when you have a medium where high latency and bad UIs are the norm and there's minimal logic required, there's less to attract the really good programmers
aja: jtaby: True. But when you start trying to handle millions of connections, not paying attention to that starts showing up. And there are damn few sites out there you can't take down with a well-placed posting to slashdot or reddit. That's unacceptable.
jtaby: granted, but that's almost always isn't a result of bad programming, rather it's because of hardware limitations
aja: jtaby: Agreed about the load-balancing. BUt it's not like distributed server farms are a new idea.
jtaby: granted.
aja: jtaby: Ah, but the bad programming shows up when you want to move to new hardware and the code won't handle it. Which is insanely common. Migrations that should take minutes take months.
gparent The funny thing is that Slashdot handles the slashdot effect every day, and I've never seen it down.
jtaby: aja: well yeah, if you don't program with scalability in mind, you can't just tag it on
jtaby: swmc: aja: but I know what your'e saying: The web enviornment attracks bad programmers
swmc: just like parallelism, extensability, and a whole host of other things can't just be tacked on
jtaby: aja: btw, why don't you like Apple's cloud services?
swmc: The fact that big professional web projects (are you listening, WebCT?) are also terrible doesn't help
aja: jtaby: I've got a mac.com account, and it's been "down for upgrade" at least twice in the last 24 months, syncing takes waaaay to long, and it's unstable for large binary files.
jtaby: aja: yeah when mobileme was released they had issues, but those have all been worked out
jtaby: webct == blackboard?
aja: jtaby: Agreed. It's been pretty good the last 6 months or so. And I do like my ipod syncronization stuff.
swmc: jtaby: yes
fow raji, I have to ask. Is your current approach /really/ the best way?
aja: jtaby: Yes.
jtaby: aja: do you liek the new interfaces?
jtaby: *like
jtaby: I really think MVC Javascript is the future of web apps
jtaby: ..but we're getting too offtopic now
aja: jtaby: Don't have a strong opinion one way or the other. Seems to work. I'm a console guy, so I get vaguely annoyed with anything that has graphics. :-)
This tumbleblog is a dump of everything I find interesting on the internet. It's also a place for me to share pieces of code, and information on my projects.