๐š‚๐š•๐šŠ๐šŒ๐š”๐š ๐š’๐šœ๐šŽ is a user on mastodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.
๐š‚๐š•๐šŠ๐šŒ๐š”๐š ๐š’๐šœ๐šŽ @Slackwise

There are programmers out there that don't know SQL... what?!

ยท Web ยท 1 ยท 2

@Slackwise on the other hand, how many programmers *really* do know SQL, eh?..

@rysiek @Slackwise when I was starting I hated SQL and loved ORM's. Later I got a job developing banking software in pure PL/SQL for 7 years. I started hating ORMs more & more and liking SQL. Learned a lot from people knowing deep intrinsic things about Oracle DB's & it's performance. Now, I like SQL and appreciate ORMs, the difference is I can drop down and fix what an ORM is doing.

@mulander @rysiek I'm working in the financial sector right now, and it's Oracle Land. I love thinking in sets/collections and queries because it's declarative-functional, but PL/SQL is just so cumbersome. :/

@Slackwise @rysiek it's more fun if you know it's origins (Ada) and how it actually works in the DB (Diana notes, how it's compiled etc). Pitfalls are also interesting, I documented some:

blog.tintagel.pl/2011/04/23/or

@mulander @rysiek I didn't know it was based on Ada, aside from obviously looking very similar, syntactically. My chief complaint is how clunky it is to work with collections, which are essential to any work. You'd think they'd work on some conveniences there.

@Slackwise @rysiek you really shouldn't be working much with collections. Most set operations should be performed int he SQL context and handled with bulk cursor loops for further processing.

They did add some collection APIs later on loosely modeled after the Java collections API but it was still so-so.

@mulander @rysiek @Slackwise unless you're using Django's builtin ORM, in which case Django will own your database and won't let you have a word in what the schema should look like :P

@Wolf480pl @rysiek @Slackwise rails with activerecord, so it has no say.

Though with django ORM exposes a lot of the things you normally do on DB level and in a very sane way. The days I recall myself doing django didn't involve much workarounds for the ORM itself.

@mulander @rysiek @Slackwise the thing is, Django ORM doesn't work under the assumption that developers' stupidity is trying to destroy the data, and DBA is the only competent person who can prevent them from doing so. Well, this assumption is a bit of an exaggeration made up by my Databases professor, but in a situation where the whole dev team changes each year it becomes kinda relevant.

@rysiek I personally know more programmers that are decent to great at SQL, but mediocre at programming. Then again, I work in corporate dev right now...

@Slackwise I would say most software don't need a DB to accomplish things. A "full stack" developer just means he knows enough of different areas to answer basic questions. When shit hits the fan you won't want a dev trying to fix a DB you will want someone that has devoted their livelihood to understanding the less known parts of SQL. DBSA are a special breed and you shouldn't take their talent lightly.

@smiles What? SQL, at least DML, is something every dev should MASTER. Database management and tuning are what DBAs do, but a programmer needs to understand relational logic and how queries work. I would also like to know what DB-less software you're talking about, as most developers are interacting with database-backed apps. Even Android devs are using SQLite device-local. Sure, they could just use files or some other form of persistence, but in practice, it's all RDBMS.

@Slackwise I have built a ton of desktop app that never used a DB. I also built a ton of web apps that didn't need a DB either.

"Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems."

Don't tell me I need to know SQL to be label a good programmer. I program just fine without it. Also spent years in the banking industry drowning in SQL. It isn't a silver bullet.

@smiles I'm not saying they're essential, I'm saying the reality of the industry is that 90%+ apps are DB backed. I'm not even a fan of working with stateful systems, they're just a reality you deal with. (I'd love to see Datomic and other append-only databases become the norm.) To not know SQL, at least DML, is to be a handicapped developer.

If you don't know what SQL databases solve well, and what they solve poorly, you don't know when not to use them.

@Slackwise I don't see it as a handicap I see it as a learning experience for them. SQL/DML isn't such a difficult concept that it would take a long time for someone to grasp and hit the ground running. Also just because you throw out a percentage like that doesn't mean anything to me. We have no measure of how many software applications use DB backends maybe the real number would surprise you.

@smiles
> SQL/DML isn't such a difficult concept that it would take a long time for someone to grasp and hit the ground running.

That's kind of my point. You should know it because it's relatively easy. No reason to not know it.

I dislike any anti-intellectual statements. Saying "don't need to learn X" is a statement no developer should be saying. Sure, not all things are equally worth the time, but relational databases are too common to be ignorant about them.

@Slackwise I never said you don't need to learn it. I am saying you don't need to learn it till SQL solves a problem. This has become to much of a boring argument for me so going that a way >>>.