A gdje im je SQL?
U Googleu se najčešće koriste ova četiri programsk
- poruka: 22
- |
- čitano: 8.291
- |
- moderatori:
vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
A gdje im je SQL?
Ne kažem da SQL nije močan i koristan za ono što je namjenjen, ali da li on spada u isti koš sa ostalim programskim jezicima koji su spomenuti u članku?
Mozilla (Firefox) ne koristi Chromimum, već vlastiti Gecko engine. Gecko koristi NaN boxing, a Chromium pointer tagging.
Ne kažem da SQL nije močan i koristan za ono što je namjenjen, ali da li on spada u isti koš sa ostalim programskim jezicima koji su spomenuti u članku?
Manipulacija podacima, tu spada SQL, i tu je daleko najbolji. Naime, svi navedeni jezici na kraju "ispljunu" SQL komandu koja se šalje prema bazi i koriste samo siromašan (VRLO siromašan) podskup SQL-a, i dodaju "overhead" odnosno usporenja. Dakle, ako ti aplikacija radi s bazom podataka, i želiš da radi dobro i kada baza naraste, nema druge nego znati jako dobro SQL jezik i pisati ga direktno, bilo u storanim procedurama ili SQL komande pohranjene u aplikaciji. Čim se SQL kod auto-generira iz nekog drugog jezika, to završi kao mega-spori mutant koji prestane raditi kada baza naraste (odnosno radi sporo do neupotrebljivosti). Vidio bezbroj puta.
Ne kažem da SQL nije močan i koristan za ono što je namjenjen, ali da li on spada u isti koš sa ostalim programskim jezicima koji su spomenuti u članku?
Manipulacija podacima, tu spada SQL, i tu je daleko najbolji. Naime, svi navedeni jezici na kraju "ispljunu" SQL komandu koja se šalje prema bazi i koriste samo siromašan (VRLO siromašan) podskup SQL-a, i dodaju "overhead" odnosno usporenja. Dakle, ako ti aplikacija radi s bazom podataka, i želiš da radi dobro i kada baza naraste, nema druge nego znati jako dobro SQL jezik i pisati ga direktno, bilo u storanim procedurama ili SQL komande pohranjene u aplikaciji. Čim se SQL kod auto-generira iz nekog drugog jezika, to završi kao mega-spori mutant koji prestane raditi kada baza naraste (odnosno radi sporo do neupotrebljivosti). Vidio bezbroj puta.
To ti je teško problem navedenih jezika jer je SQL najobičnija tekstualna komanda. Problem je u tome što često ne postoji podjela zadataka na programera i administratora, već se često sve prebaci na leđa programera. Tako da je zadužen i za kreiranje baze/tablica. A on ne mora nužno znati da je tablicu potrebno indeksirati (a što administrator itekako zna). I eto ti usporenja.
Slažem se da dev i dba trebaju surađivati, i da poslodavci nerealno očekuju da je ista osoba i dev i dba (i tko zna što još), jer žele uštedjeti.
A gdje im je SQL?
Nigdje jer ga ne koriste. Isto tako SQL nije programski jezik, u samom imenu mu je što je => query language.
Entity Framework je .NET Framework. Niti jedan od navedenih jezika ne spada u MS (Microsoft Shit). Jedino što koristim od MS je debugger koji nije savršen, ali je blizu. I naravno C/C++ compiler jer jedno ne ide bez drugog.
Jasno je u naslovu - programski jezici. SQL nije programski jezik. Uopće nije tema članka niti se igdje spominje.
I kao što sam napisao google za svoje service koristi big table/big query, spanner itd. Imaš ih u GCP-u.
I nemoj se javljati za posao. Trebam znalce.
Daj ne laprdaj, imaš odmah na wiki-ju prva rečenica:
Structured Query Language (SQL) (pronounced S-Q-L; historically "sequel")[4][5] is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling structured data, i.e., data incorporating relations among entities and variables.
Služi za manipulaciju podataka i toeto. Šta možeš isprogramirati u SQL-u i to negdje prikazati bez korištenja drugih tehnologija?
I još nešto s wiki-ja:
The majority of practical programming languages are Turing complete,[5] and all Turing complete languages can implement the same set of algorithms. ANSI/ISO SQL-92 and Charity are examples of languages that are not Turing complete, yet are often called programming languages.[6][7] However, some authors restrict the term "programming language" to Turing complete languages.[1][8]
I nemoj se javljati za posao. Trebam znalce.
Onda mi isprogramiraj SQL-om jednostavni cli program koji će recimo izlistati network interface-e. Vrlo jednostavno, jednostavnije ne može biti.
Hvala ne treba mi posao. Sigurno ne takav gdje netko misli da je SQL programski jezik.
https://en.wikipedia.org/wiki/Computer_program
https://en.wikipedia.org/wiki/Programming_language
I molim te za dobrobit svih, nemoj se javljati na poslove u IT struci.
HTML mi je draži programski jezik od SQL-a
Skoro sve novije verzije SQL-a jesu Turing complete (T-SQL, PL/SQL, itd.), dakle može ih se zvati programskim jezicima. I to je tako već koje desetljeće, iako je mnogima SQL "tamo nešto za baze, a ne pravi jezik". ANSI SQL nije Turing complete, namjerno.
Činjenica da jezikom ne možeš napisati CLI program za listu network interface nije kriterij. Jezici koji nemaju potreban binding za OS API ili runtime su i dalje programski jezici.
Na primjer, MSSQL ima extended procedure kojima možeš "pobjeći" iz konteksta baze i doći do, na primjer, liste datoteka na disku. Slično bi se moglo napraviti i za network inteface-e.
Još jedan primjer, JavaScript aplikacije u browseru također koriste hosting env browsera za pristup lokaciji, kameri, i slično. Činjenica da JS sam po sebi to ne može, ne znači da nije programski jezik.
Primjer SQL programa: https://wiki.postgresql.org/wiki/Mandelbrot_set
Skoro sve novije verzije SQL-a jesu Turing complete (T-SQL, PL/SQL, itd.), dakle može ih se zvati programskim jezicima...
-besmisleno natezanje.. ili stvar 'mišljenja' .. ili definicije, granice, tumačenja.. pri čemu bi prvo morali odrediti kriterijie. .. a kriterij je što?
-karikirano, svaki text-string-zapis se može tumačiti programom, sve je file, sve je adresa, pri čemu bilo kojem čipu možemo poslati i nasumične znake (kod, đabriš, smeće..) i on može nešto izvršiti ili odbiti.. sve što je tad potrebno je mehanizam prosljeđivanja kojeg ima i banalni batch, koji je ipak samo batch, no programerski jači-rašireniji nego sql u primjerima koji se žele dati.. tj karikirano natezanje extrema, jednako kao natezanje kožice na pimpaču :)
-ili od kraja rečenice-dijela.. dakle može ih se nazvati.. ali i ne mora? tj ni sam ne kažeš decidirano da je jezik, nego može ih se nazvati.. a kriterij je što? ono što kaže krešo? (u nastavku vica, 'znam da mu to nije ime, nego mu tepam'..) :)) ..
Kažeš besmisleno natezanje, pa onda natežeš o "sve je adresa", bash je "jači-rašireniji" od SQL-a, sve može bit program ako ga se tako definira, i slično. Sve navedeno je mišljenje i natezanje, ne vidim ni jedan argument.
U dobroj vjeri i ako je netko stvarno zainteresiran za raspravu, moj stav direktno (definicije i klasifikacija SQL-a kao jezika):
1) Računalni jezik - bilo koji sintaksno i semantički definiran izričaj korišten u računalnim sustavima. Tu spada i HTML, CSS, XSLT, SQL, ili bilo koji drugi domain-specific language.
2) Programski jezik - računalni jezik kojim se može opisati algoritam (program!) za računalno rješavanje neke klase problema, deklarativni ili imperativni. Turing complete sustavi su u stanju izvršavati algoritme. Sve moderne derivacije SQL-a su to u stanju.
3) Programski jezik opće namjene - programski jezik koji se može koristiti za razne primjene, ne samo za domain-specific probleme. Tu su svi jezici koji ljudi smatraju klasičnim programskim jezicima (Java, C/C++, C#, GoLang, Python, JS, itd.).
Jezici opće namjene u kojima možeš napraviti apsolutno sve su u biti vrlo rijetki, tako da to nije i ne može biti kriterij. Na primjer, JavaScript nikada neće biti jezik za pisanje OS-ova ili drivera, ali je i dalje punokrvni jezik opće namjene (client i server node.js na primjer za web). Činjenica da neki jezik nije praktičan za neku primjenu, ne znači da prestaje biti programskim jezikom.
Za kraj da malo karikiram i odem u ekstrem; praktični jezici za grafiku i highly-parallel compute su recimo HLSL i CUDA, s time da postoje interopi za Python, C/C++ ovisno o primjeni. Nitko normalan neće programirati ray-tracing za igre u SQL-u, ali SQL to teoretski može -- dakle, na temelju čega bi ga se trebalo diskvalificirati kao programski jezik?
https://github.com/chunky/sqlraytracer
-da.. može i tako, tj bez kriterija može sve biti bilo što.. besmisleno. ..
-pošto se jedan primjer ne objašnajva samim sobom (rekurzivno pozivanje funkcije) evo drugačijeg primjera:
-što je software? .. to je i bios, firmware, i os i driver, i svaki sys-dll-lib, svaki file, odnosno podatci se dijele na programske-app koji nešto rade i podatak koji se obrađuje, reuzltat, pohrana.. no sve je to soft, podatci, fileovi, zapis.. u kranjoj liniji niz null-jedinica (ili bilo koji drugi tip zapisa, pri čemu je za računala primarno binarni..). Dakle što je soft? sve što radi računalo, osim samog hw-a, sve ostalo je soft.. i to je recimo točno.
-no dijelimo ga, klasificiramo, organiziramo-grupiramo po kriterijima, kao adresar po abecedi ili kojem već kriteriju želimo-trebamo.. mada je to sve soft razlikujemo os, dirver, app.. kao što se ljudi razlikuju po rasi, visini, spolu, imenu.. mada u deklaracijama kažemo da su jednaki (jednako pravni) itd..
-tako su sva živa bića i biljke pod florom i faunom, fungi itd.. no opet ih sistematizacijom-klasifikacijom po nekom kriteriju dijelimo.. kao što u kuhinji ili alatnici imamo ladice-pretince, za organizaciju, preglednost, ne jednu ladicu za sve nego po nekom kriteriju, smislu, optimizaciji, namjeni.. šarafi u alatu, šarafciger, čekić.. sve ima svoje mjesto s razlogom, mada sve možemo strpati u vreću zmixano i reći to je alat.. sve je soft, sve su neka bića ili svi su ljudi 'jednaki'.. no posotji podjela, s razlogom.. pa tako postoje jezici, ljudski, pisma, kao i programski..
.. a kad se dođe do nabrajanja programskih jezika tad batch ili sgl nisu prvi na listi, mada je sve to 'isto'-soft i svaki teoretski može sve-bilo što.. tj sql ima konkertnu namjenu, upita na bazu.. ne služi npr kreiranju same baze, ne služi izradi appsa kojom obrađujemo podatke u bazi, nego kao osnovno, manipulacijom, dohvatom, upitom.. i zato se tako i naziva upit na bazu ili query.. dok je akronim sql.. jer sve moramo nekako nazvati da bi mogli o tome razgovarati, učiti itd..
- 'parvim' programskim jezikom izrađujemo appse, ono što ekšli koristimo, pri čemu ćemo i dodatno koristiti sql, kao što će stolar koristiti čekić ali i bušilicu, špahtlu, olovku.. svašta, ne samo jedan alat, .. ne samo jedan jezik nego svaki optimalno za svoj dio u kojem je bolji-najbolji, pa tako čekićem zabijamo čavle, a ako ga nemamo možemo i kamenom... nije time kamen postao alat-čekić, mada je poslužio svrsi umjesto čekića.. tj takva 'razlika' je u tom korištenju na način 'moguće je'.. kao što je jednako besmisleno šleperom prevesti kilogram jagoda, to možemo u ruci-vrečici.. na biciklu, šleper se koristi kad postoji odgovarajući teret, mada je u teoriji na papiru kao formula s varijablom x, taj x moguće vrijednosti 1kg, 1gram, 1tona.. tj na papiru je svejedno, u stvarnosti nije.. i tad sql nije programski jezik, odnosno sve je soft i sve su živa bića kao što su svi ljudi 'jednaki'.. pa sve može biti sve, možemo biti košarkaši-ronioci-gitaristi.. no nismo, nego smo ipak jedno od tog, ne sve, nije neki šaraf istovremeno dio motora aviona i propelera broda, nije cigla istovremeno u temelju kineskog zida ili pseće kućice, mada je cigla ili šaraf stvar koja može kao osnovni element biti upotrebljen bilo gdje tj tamo gdje ima smisla.. a sql-om nema smisla proizvoditi klasičan soft-app, driver, .. čak ni 'tetris'.. i to se jednostavno ne radi sql-om, a iz tog razloga ga se ni ne navodi kao programskim jezikom, 'pravim' ili ono što se pod tim podrazumijeva.. dok se i kamenom ili pivskom bocom može zabiti čavao, no time nisu postali čekić ili bolji alat ..
-kriterij, smisao + podjele koje postoje s razlogom, klasifikacija.. može se svašta, može se bilo što.. no čemu? inzistirati da je sql programski jezik? smiješno.. no ako je to 'problem', eto, ok, 'kao ja sad kažem pa je to tako'.. to je programski jezik, pa je sad to riješeno? sutra će netko u sql-u isprogramirati 'tetris'? .. ili će s daleko većom šansom za to biti bilo koji drugi-pravi programski jezik kao python-c-nešto..? tj pitaj programere u kojem jeziku-jezicima programira.. pri tome ako ih je više, moguće da će jedan od njih biti naveden i sql, no nikad jedan-jedini, .. jer naprosto nije, tj tad nije 'pravi' programer nego samo baze, kao što može biti u excelicama i sl. no to za 'prave' jednostavno nije 'pravo programiranje'.. ne proizvodi apps, driver, os, ništa.. isključivo obrada podatka, dok se u pravilu za prikaz i sve ostalo koriste 'pravi' jezici kojima se proizvodi odgovarajuća app.. npr browser kojim pristupamo ovim stranicama je napravljen u kojem prog.jeziku? -- nije u sql-u.. itd. odnosno, čak i ono što se teoretski može (svime u svakom..) nećeš pronaći nešto čime bi pobio takav argument, npr browser koji je napravljen sql-om, tetris.. itd.. tj možeš upravo suprotno, pronaći izuzetak koji postoji samo da bi dokazao da je moguće, no nije time postao programski jezik kojim će se to raditi, ne samo zato jer je moguće, jer moguće je kamenom-bocom-nogom.. zabiti čavao pa nisu alat i ako imaš alat tad ne koristiš kamen.. ako nemaš, tad koristiš što imaš, ne kao izbor. .. tako sql nikad nije takav izbor i možemo dodati, ako hoda ko patka, ako gače ko patka.. suprotno, ako to ne radi, tad nije patka, možda je kokoš, možda muha.. no nije patka.
-što je software? što je čekić-alat? zašto postoje klasifikacije-podjele.. zato sql nije programski jezik, dok 'može se' .. može se i kamenom zabiti čavao, to se ne radi ako imaš alat.
-ok, 'ja i moje mišljenje'.. pa evo wiki, koji jezici su nabrojeni kao primjer? koji nije.. nije sql, jer naprosto nije primjeran usprkos što se teoretski bilo čime može bilo što..
-što kaže polu-ai kao copilot? .. skoro isto što i wiki, dok u primjeru nabrajanja .. pogodi kojeg nema, nema sql-a, no ima python, c, ruby, java.. desetak nabrojienih za primjer, nema sql-a.
vidi c/p pitanja copilotu: smatra li se sql programskim jezikom?
Copilot
Šalje Copilot:
SQL (Structured Query Language) nije programski jezik u klasičnom smislu. Umjesto toga, SQL je upitni jezik koji se koristi za komunikaciju s bazama podataka. Koristi se za izradu upita, ažuriranje podataka, stvaranje tablica i indeksa, upravljanje korisnicima i drugih operacija povezanih s bazama podataka.
SQL se često koristi za:
Izradu upita: Traženje, filtriranje i dohvaćanje podataka iz baze.
Ažuriranje podataka: Dodavanje, ažuriranje ili brisanje podataka u tablicama.
Definiranje strukture podataka: Stvaranje tablica, indeksa i ograničenja.
Upravljanje korisnicima i dozvolama: Definiranje prava pristupa korisnicima.
Iako SQL nije programski jezik, njegova važnost u razvoju aplikacija i upravljanju podacima je iznimno velika. Ako imate dodatna pitanja, slobodno pitajte!
-copy je originalan, nisam čak ni boldao ja nego 'on'.. :)
.. koliko primjera ili kriterija treba? tj ili svi ostali griješe ili 'ja' (ti i keso-krešo?) .. podsjeća na vic kad mujo vozi londonom.. (svi u pogrešnom smjeru..) :)
-ako hoda ko patka, gače ko patka, tad je patka.. ako ništa od tog ne radi, tad nije patka.. tad sql nije programski jezik, neovisno što ja-ti mislimo, tj to je generlani kriterij-klasifikacija .. kao što ja btw imam kriterij za AI pri čemu ono što se po medijma prenosi nije AI.. jer ne zadovoljava osnovne kriterije u opisu AIja, kao učenje.. i svode se na algoritam, običan, ne AI.. no mediji to guraju, naslovi.. i mogu prihvatiti ili njurgati, pri čemu je razlika što postoji definicija-kriterij u 'moju korist' dok u ovom primjeru za sql tog nemaš.. tak da, besmisleno, odnosno, ako želiš drugačije tumačenje moraš uvjeriti 'ostatak svijeta' da pormjene klasifikiaciju-kriterij što je programski jezik, barem u primjerima koje nam recimo AI daje .. ok? :)
Možda kratki osvrt na par stvari:
1) U primjeru s patkom zaključuješ da SQL nije programski jezik. OK, ajmo ovako, koje karakteristike "programske patke" smatraš kriterijima da nešto je ili nije programski jezik?
SQL ima sintaksu, konzistentan set pravila, i sve potrebne konstrukcije za pisanje algoritama (varijable, branching, petlje, rekurziju, itd.). Po tome ga prepoznajem kao patku. Reci, što točno fali?
2) Copilot kaže da SQL "nije programski jezik u klasičnom smislu" -- dakle, ipak je možda programski, samo ne klasični? Što definira "klasični" jezik?
Entry Point barem ima konkretan primjer -- nije programski jezik jer ne podržava CLI i syscall. Moj argument je bio da to nije kriterij, jer svaki programski jezik ima neka teoretksa ili praktična ograničenja. Ili se ne koristi za određene primjene.
Hoćemo li onda i Erlang izbaciti iz grupe programskih jezika jer ima ograničenu primjenu (90% se koristi za telekom primjene i concurrency, i nije "klasični" jezik za CLI, web, desktop UI i slično)? Možda i Haskell onda nije, jer bez I/O monada ne može ništa korisno napraviti?
Ako kažeš da mediji, AI, i svi na forumu voze lijevom trakom u Londonu, a samo ja desnom, neće ti biti problem argumentirati svoj stav :)
Samo pliz... baziraj argument na computer science-u, a ne "to je tako jer puno ljudi misli da je patka patka". Konkretno, SQL iznutra poznaje i razumije relativno mali postotak ljudi u populaciji programera, pa "većinsko mišeljenje" i površni Google search ne smatram argumentom. Uostalom, googlat mogu svi, koga interesira može naći kakve god odgovore želi. Confirmation bias i tako to...
Ili alternativno, mogu prihvatiti i da je sve mišljenje, da je "pravi programski jezik" upravo onaj kojeg mislioc poznaje i koristi a neki drugi nisu, pa završimo ovdje.
-ja? gle, lako za mene, uvjeri sebe zatim ostatak globusa koji o nečemu odlučuje i ažuriraj klasifikacije-kriterije po kojima se stvari dijele.
-relativnost.
-lopata i bager služe kopanju.. oboje rade isto, pri tome lopata nije postala bager. sql ne postaje 'pravi-klasični' programski jezik, što ti kaže svaki relevantan izvor, dok ako želiš pošten kriterij, ponovo pročitaj čitav copilotov odgovor.. i ne moraš uvjeriti mene ili ispraviti moje mišljenje, jer nisam ja taj koji odlučuje o klasifikacijama nego je to malo globalniji cenzus, standard.. dok ako ti imaš argument protiv, na tebi je teret dokazivanja-osporavanja .. itd.
Ne trebam ja nikoga u ništa uvjeriti, pogotove tebe koji ćeš uskoro doktorirati filozofiju računarstva :)
Zadnji "teaseri" od mene ako nekog zanima (ako ne, isto super):
https://en.wikipedia.org/wiki/SQL
"SQL is designed for a specific purpose: to query data contained in a relational database. SQL is a set-based, declarative programming language, not an imperative programming language like C or BASIC."
https://aws.amazon.com/what-is/sql/
"Structured query language (SQL) is a programming language for storing and processing information in a relational database."
Ključni izraz "programming language".
Idem sad pogledati finale EURO 2024, pozdrav ekipa!