Jump to content
php.lv forumi

kāda valodā un kā? (desktop app)


Recommended Posts

  • Replies 61
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Codez, kā konkrēti Tavs redzējums uz programmēšanas valodas modernismu būtu attiecināms uz pascal, pareizāk sakot kas tieši pašā pascal valodā kā tādā nav atbilstošs mūsdienu programmēšanas paradigmām?

 

Ko Tu gribēji pateikt ar problēmu atrisināšanu bez "caurumiem"? Varbūt tagad vēl mēģināsi iestāstīt ka ar paskālu var programmēt kā grib un vienalga programma būs caurumaina? Ja, piemēram, pascal salīdzina ar to pašu C, tad pascal ir stingrāka un lasāmāka valoda un pielaist neuzmanības kļūdas C ir daudz vienkāršāk. Pielaist dažādas kļūdas ir iespējams visur, taču apgalvot ka programmējot ar pascal kods būs caurumains tikai pašas programmēšanas valodas dēļ ir absolūta muļķība un no programmētāja ar lielu pieredzi kāda tā ir Tev (vismaz pēc foruma tā izskatās) tādu domu gājienu sagaidīju vismazāk. Kas tieši pascal valodā ir tāds, ka tur nevarētu atrisināt problēmas bez "caurumiem"?

 

Kārli, ko tieši? Īpaši ja iet runa par lietojumprogrammatūru, nevis, piemēram, par draiveru programmēšanu, kaut arī tas būtu iespējams, tikai vai to būtu pareizi darīt ar pascal, tas jau ir cits jautājums.

Link to comment
Share on other sites

Tieši tā, nekādas jēgas no strīdēšanās par to kura valoda ir labāka nebūs, tāpēc arī neteicu ka paskāls ir vienīgā pareizā un tur var izdarīt visu, bet citās valodās nevar.

 

Vēl vienu jautājumu Tu man uzdevi, bet uz manējo tā arī neatbildēji. Lai nu būtu, par darbu un iespējām.

 

Ja Tu būtu lasījis uzmanīgi ko iepriekš rakstīju, tad būtu sapratis ka tieši Java valodu uzsvēru kā gan perspektīvu, gan labi atalgotu.

 

Ar delphi/lazarus iespējams ir salīdzinoši mazas, pareizāk sakot te jārunā par delphi, neesmu vēl redzējis sludinājumus kur prasītu lazarus, bet ja mācēsi vienu, tad mācēsi arī otru. Delphi programmētājus meklē salīdzinoši maz, bet ja meklē, tad nemaz tik viegli nevar atrast.

 

Nesaprotu kāpēc vispār tāds jautājums, jo nekur neteicu ka delphi vai lazarus būtu perspektīvāks darba iespējās par to pašu java vai C? Es taču skaidri teicu to, ka tā būtu mana personīgā izvēlē, nevis ka tā būtu vienīgā pareizā, arī uzsvēru, ja valoda ļautu sasniegt to ko vajag, protams sasniegt var visu, bet jādomā arī par to cik vienkārši to sasniegt un vai ir jau gatavi risinājumi citās valodās. Par to kāpēc es personīgi izvēlētos lazarus nevis delphi, es arī pateicu, jo tas ir open source un darbojās uz linuks.

 

Vispār tā arī nesaprotu no kurienes ir tāds mīts, ka pascal ir nemoderna, paredzēta tikai mācībām valoda, kas ne visu var paveikt? Neviens nevienā no tādām diskusijām vēl nav pamatoti to argumentējis.

Edited by Maris-S
Link to comment
Share on other sites

Pielaist dažādas kļūdas ir iespējams visur, taču apgalvot ka programmējot ar pascal kods būs caurumains tikai pašas programmēšanas valodas dēļ ir absolūta muļķība un no programmētāja ar lielu pieredzi kāda tā ir Tev (vismaz pēc foruma tā izskatās) tādu domu gājienu sagaidīju vismazāk. Kas tieši pascal valodā ir tāds, ka tur nevarētu atrisināt problēmas bez "caurumiem"?

Ar "caurumu" šeit es domāju, nevis drošības caurumu, bet nedaudz plašāk.

Datozinātnē ir izveidojusies noteiktu paternu un paradigmu kopa, kuras risina daudz un dažādas problēmas, un ne tikai šaurā algoritmiskā izpratnē, bet plašā software izstrādes izpratnē, kas ietver sevī ērtu aplikācijas uzturēšanu, testēšanu, modularitāti, DRY, LAZY.

Daudzi no šiem paterniem un paradigmām ir plaši pētīti teorijā un pielietoti praksē un ir zināmas to vājās vietas (iespējamie "caurumi" - grūta aplikācijas uzturēšana, nemodularitāte, sarežģīta testēšana, garš kods problēmas risināšanai, problēmas nerisināmība, sarežģīts multithreadings, utt.) un stirpās vietas.

Veidojot modernās valodas, daudzas no šīm lietām tiek ņemtas vērā un valodas tiek veidotas tā, lai daudzas no šīm problēmām varētu viegli atrisināt. Tādā veidā modernā valodā globālu problēmu var ērti atrisināt, izmantojot modernu un dziļi izpētītu paternu vai paradigmu, kamēr nemodernā valodā, lai realizētu šo pašu paternu, ir jāraksta ļoti daudz boilerplate koda vai pat vispār tas nav iespējams kā gadījumā ir jāizmanto pašizdomāts struktūra problēmas risināšanai. Un tā kā tā ir pašizdomāta struktūra, tad tā nav pētīta teroija, ne praksē un var ietvert sevī "caurumus" - grūta testēšana, nemodularitāte, neievērots DRY princips, utt.

Un, lai būtu skaidrs, arī C un C++ es uzskatu par nemodernām valodām, tieši šī iemesla dēļ C++ tiek attīstīts pat C++03 -> C++11, taču arī tās ir tālu, jo principā daudz lābāk modernu valodu ir izveidot, to veidojot pamatos tādu.

Link to comment
Share on other sites

Kārtējais jautājums. Kā būs ar atbildēm uz manējiem? :)

 

Par ORM, nav ne mazākās nojausmas, jo es viņus neizmantoju, kad vajadzēs, tad meklēšu. Par to kāpēc man nepatīk ORM, vismaz uz php, jau rakstīju kādā no atbilstošajām tēmām šajā forumā.

 

Uz ātro meklējot:

 

http://delphi.wikia.com/wiki/Enterprise_Core_Objects

http://delphi.about.com/od/toppicks/tp/orm-object-relational-mapping-delphi.htm

 

Kārli, nevajag taču tā kritizēt bez pamatojuma. Uzdodot kādam jautājumus, atbildi arī uz Tev uzdotiem. Tas, ja nebūtu kāds izveidojis ORM, nenozīmē ka programmēšanas valodai ir mazāk iespēju vai tā ir neefektīva. Arī php nav ideāls un ko man tagad darīt, visu pārprogrammēt, tikai tāpēc ka tur kādas nianses nav, piemēram UTF-8 failu nosaukumu atbalsts (windowā), par ko biju minējis jau iepriekš šajā forumā?

Link to comment
Share on other sites

Codez, kuras tad ir tās labās valodas Tavā skatījumā?

 

Kur tieši ir tā kritikas būtība uz pascal valodām? Vai tiešām tas ko Tu teici: "komponenšu trūkums izsaka visu"? Tad kurā no valodām ir pilnīgi viss?

 

Es tiešām neesmu pētījis visas programmēšanas paradigmas uz delphi, man nebija vajadzības izpētīt pilnīgi visu, bet es nedomāju ka ir kāda valoda kurā būtu viss.

 

Sarežģīta testēšana gan laikam nebūtu par pascal valodu. Es uzskatu ka tai ir viena no lasāmākajām sintaksēm. Arī IDE atkļūdošanas rīki ir pietiekami attīstīti. Arī iespēja atklāt memory leaks izstrādes gaitā nav mazsvarīga pie atkļūdošanas, kas nav izveidota tai pašā C, vismaz man nav zināms par tādu. Pielaist kļūdas var jebkurā programmā, lai arī cik moderna būtu un tāpat var sarakstīt kodu, kas nebūs viegli lasāms un atkļūdojams. Šajā ziņā nesaskatu pascal valodu kā nepilnīgāku par citām.

Link to comment
Share on other sites

Codez, kuras tad ir tās labās valodas Tavā skatījumā?

Modernākās valodas ir (iekavās mans subjektīvais modernuma vērtējums no 1-10):

1)Sistēmas programmēšanai - C11(5.5), D (8)

2)Plaša spektra pielietojamībai:

2.1)Statiski tipi: Delphi(4)(priekš references), JAVA (6), C#(7), Scala (8.5)

2.2)Dinamiski tipi: Python(6.5)

3)Dinamiski tipi webā: PHP(6), Javascript(5)

4)Paralēlismam labi pielāgotas: Erlang (7), Clojure (7), Go(8)

Kur tieši ir tā kritikas būtība uz pascal valodām? Vai tiešām tas ko Tu teici: "komponenšu trūkums izsaka visu"? Tad kurā no valodām ir pilnīgi viss?

Viss nav nevienā, tomēr, ja mēs paņemam jebkuru JVM bāzētu valodu, tad tai zem katras tēmas var atrast desmitiem bibliotēkas, kamēr Dephi ātri iemetot aci, neatradu nevienu bibliotēku dažās pietiekami aktuālās jomās.

Es tiešām neesmu pētījis visas programmēšanas paradigmas uz delphi, man nebija vajadzības izpētīt pilnīgi visu, bet es nedomāju ka ir kāda valoda kurā būtu viss.

Tieši tāpēc attīstās valodas! Tāpat tiek radīti arī jauni paterni un paradigmas un tā iemesla dēļ arī nepieciešamība radīt arvien jaunākas un labākas valodas.

Sarežģīta testēšana gan laikam nebūtu par pascal valodu. Es uzskatu ka tai ir viena no lasāmākajām sintaksēm. Arī IDE atkļūdošanas rīki ir pietiekami attīstīti. Arī iespēja atklāt memory leaks izstrādes gaitā nav mazsvarīga pie atkļūdošanas, kas nav izveidota tai pašā C, vismaz man nav zināms par tādu.

Modernākās valodās/platformās tāda nepieciešamība nav, jo ir smart pointers vai garbage collection. Bez tam FastMM nodrošina pret memory leaks tikai tur, kur programma pati izmanto to, tas nozīmē, ka piemēram, izmantojot dll funkciju, delphi programma nav pasargāta no memory leaks. Edited by codez
Link to comment
Share on other sites

Paldies par valodu salīdzināšanu.

 

Jā, delphi būs mazāk bibliotēku, ko arī pieminēju kā lielāko mīnusu šai valodai. Taču tas man neliek domāt ka tā valoda ir pielīdzināma tikai mācību valodām un nelietojama. Ja viņa būtu nelietojama, tad viņu arī neviens nelietotu.

 

Nu labais, nav nepieciešamība atbrīvot atmiņu! :) Tā ir laba pieeja, saveidojam kaudzi objektu un atstājam atmiņā, ir taču garbage collector! :) Nu nezinu, laikam moderniem programmētājiem ar modernām valodām tas liekās normāli. Pareizi, priekš kam veidot kvalitatīvu programmas darbību, ja var to nedarīt? Tikai kāpēc tad memory leaks vienmēr tiek uzskatīts par bugu, kurus vienmēr labo? Ir taču garbage collectors. Problēma ir tur, ka lielākai daļai programmēšanas valodu nav rīku, lai tādus bugus vismaz mēģinātu izķert izstrādes gaitā, nevis tāpēc ka modernajās valodās to nevajag darīt.

 

Protams ka FastMM varēs atrast memory leaks tikai Tavā programmā. Viņš arī paredzēts, lai tos atrastu delphi kodā. Viss ir ļoti pareizi, FastMM atrod memory leaks un parāda kur kodā tas notiek. Kā Tu iedomājies to izdarīt ar dll, kur nemaz nav programmas izejas kods? Tas kas notiek dll ir dll ražotāja atbildība. Es nesaku ka programmētājam nav nepieciešams pārliecināties par izmantojamo dll kvalitāti, protams tas ir jādara, bet primāri par to kvalitāti ir jārūpējas tam, kas to dll ir programmējis un viņam būtu jārūpējas par tādu kļūdu atrašanu savā programmā, ko ražotājs arī parasti dara. Kā viņi to dara tai pašā C es nezinu, bet parasti jēdzīgi ražotāji labo bugus savos produktos, tai skaitā memory leaks. Vai es tomēr kaut ko ne tā saku?

 

 

Kā jau teicu lazarus/delphi būtu mana personīgā izvēle, īpaši veidojot lietojumprogrammatūru, nevis to, ka šīs būs vienīgās pareizās valodas.

Link to comment
Share on other sites

Kā ir Delfos par to pašu Codez pieminēto ORM? Ir kaut kādas iepējas?

Ahahahahaha! :D

 

Laikos, kad tādā PHP vispār nezināja, kas ir objekts, Delphi jau sen bija tā: nomet uz formas DB objektu, saraksti konekcijas parametrus, nomet tabulas objektu, norādi, ka izmantojamā DB būs tas DB objekts, nomet vēl datu tabulas skata objektu, norādi, ka tabula būs tas tabulas objektas. Nospied [ Run ], un tev ir ekseļveidīgs, pilnībā funkcionējošs tabulas editors. Izdari to pašu, bet bez tā skata objekta, toties nomet uz formas pāris laukus, kuriem norādi tabulas objektu un kura kolonna tabulā tā ir. Noliec klāt [ Save ], nokompilē - urā, tev ir gatava forma ieraksta izveidošanai un rediģēšanai.

 

Primitīva noliktavas uzskaites programma gatava, uzrakstot tieši 0 rindiņas sava koda. :D

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...