Az iparban muszaj hasznalni valami "frémvörķ"-öt?
Az egyetemet most kezdtem es van prog1 targyam es a tanar folyamat azt mondja,hogy a frameworkoket tanuljul, mindig a piacnak megfelelot a tobbi csak korites..
van olyan ceg ami nem hasznal frameworkot.. en egyszeruen nem szeretem azt hogy csak behivok egy osztalyt es ennyi...(szeretem magam megtervezni es implementalni) nyilvan jo dolog, ha keves az ido es gyorsan kell haladni.
Először is tisztázzuk, hogy mi az a framework.
"Önmagában közvetlenül nem használható, de bizonyos tipikus feladatok elvégzését nagy mértékben segítő, egységes módon megszerkesztett "építőkockákat" (komponenseket) tartalmazó halmaz."
Forrás : [link]
Ennek szellemében "szedjük szét". Ha windows-os szoftvereket akarunk írni, ahol vannak ablakok, beviteli mezők, stb, akkor ott van például a NET keretrendszer, oké ezt ne használjuk. Írjuk meg a nélkül. Akkor a kódunkba implenetáljuk saját magunk az ablakkezelésnek megfelelő osztályt, vagy pedig használjuk mindig direktbe a window-os rendszerhívásokat melyekkel új ablakot kérünk mely visszaad egy handle-t melyet paraméterül adok hogy ennek az ablaknak gyerek gui objektumai legyenek, button, editbox stb. Hoppá ez is keretrendszer tulajdonképpen a windows rendszer szintű keretrendszere, ezt se használjuk ki mert keretrendszer. Implenetáljuk saját magunk a gombokat, editbox-okat, scrollbar-okat. Pixelek-ből vonalakból stb. mi rajzoljuk és kezeljük a különböző eseményeit. Igen ám, de ez is tulajdonképpen keretrendszerre épül amiből meghívjuk a különböző rendszerhívásokat melyek a renderelést, a különböző beviteli perifériákat kezeli. Igazából ne is használjunk windows-t mert windows alatt, vagy bármely oprendszer alatt ha futtatunk bármit is az framework-re támaszkodik. Írjunk saját operációs rendszer hozzá , vagy írjunk cupaszgép programot mely közvetelenül kezeli a különböző kimeneti és bemeneti perifériákat, fejlesszük le a sok száz meg ezer féle különböző hardverre, hogy mindegyiken működjön. Nem utolsó sorban ami manapság már elengedhetetlen, kezeljen hálózatot, a különböző hálózati rétegek kezelését implementáljuk le saját magunk, nehogy framework-öt kelljen használni. Ha esetleg csak ansi c-ben egy hello world-öt akarunk írni nehogy használni merjük az stdio.h-t ha ki akarjuk printelni a "hello, World!" szöveget, hiszen az már keretrendszer, írjuk csak meg saját magunk egészen a hardver közvetlen hozzáférése kernelmód szintig. A szokásosnál tágabban érzelmezve a fogalmat framework-nek tekinthetem a processzorban lévő mikrókódokat, a processzor utasításkészletét. Ekkor már tervezzem meg én magam fizikailag a hardvert is és gyártsam vagy gyártassam le. Ha jól tudom akkor a MIT egyetemen ha hallgató vagy és megdumálod akkor le is gyártyák ha terveztél egyet. Az is igaz hogy nem véletlen van elég kevés számú processzor gyártó vállalkozás, mivel nagyon nehéz felvenni a versenyt velük.
html/html5 css JavaScript-et szabad használni? Ott már alapból a webböngésző szolgáltatja a framework-öt.
Vagy a napokban tanulmányoztam a webgl-t mely multiplatformos online számítógépes grafika.
Például itt forog a 3D-s objektum tutorial is van hozzá meg egy csomó minden más grafikus cucchoz is ott az oldalon, egy kiváló tananyag maga az oldal : [link]
Ha saját magam készítek ilyesmit akkor amit az évek során kifejlesztetek hozzá framework-öt letöltöm hozzá és használom, de te nekikezdhetsz lekódolni azt is. Elég "izmos" mennyiségű kód van mely a különböző grafikai cuccokat kezeli, ha elég ügyes vagy 100 év alatt meg is tudnád írni egyedül, de csak ha a böngészőt meg az oprendszert azt nem te akarod megírni hozzá. Az hogy addigra mennyire előrehaladott lesz a számítástechnika és milyen elavult lesz ez a te 100 évig írt kódod arról nem is beszélve.
# 11/11 Időpont ma 14:54:
Nem akarnék bezavarni a gondolatmenetedbe, de te erősen kevered a -framework-, az -API- és az -interfész- fogalmakat, hogy egyéb, értelmezés-beli zűrökre már rá se mutassak.
11:
"Az is igaz hogy nem véletlen van elég kevés számú processzor gyártó vállalkozás"
Nem tudom, hogy neked mi a kevés, de van belőlük legalább félszáz.
"html/html5 css JavaScript-et szabad használni? Ott már alapból a webböngésző szolgáltatja a framework-öt."
A böngésző nem a framework-öt szolgáltatja, mivel a böngésző egy felület, egy I/O interfész. De csak a HTML és a CSS pároshoz, ugyanis a javascript elég jól elvan magában is, konzolból futtatva.
A dot net keretrendszert vagy használja valaki, vagy nem, mindenesetre kötelezővé még nem tették, gondolom arra való tekintettel, hogy az operációs rendszerek sokaságából (QNX, BSD, RiscOS, Unix, FreeRT OS, Solaris, OsX, stb.) mindössze a windows alatt ér vele valamit az ember, na de hát, programokat nem csak windowsra írnak. Mi több, windowson sem kizárólag olyanokat, amelyek igényelnék akár a .NET akár a WinApi szolgáltatásait.
" Nem utolsó sorban ami manapság már elengedhetetlen, kezeljen hálózatot"
Micsoda kezeljen hálózatot (elengedhetetlenül) józsi? Egy szövegszerkesztő, egy interpreter, egy fotóeditor, egy konverter, egy adat-kompresszor?
Persze, nem mintha ne lehetne mondjuk egy UDP-t, FTP-t megírni, ha mégis szükség lenne rá. Vagy neked jobban esik más sz.rában (bugok) turkálni?
"Nem tudom, hogy neked mi a kevés, de van belőlük legalább félszáz."
Aligha van annyi, de még ha fel is tesszük hogy annyi van akkor se jut országonként átlagosan 3 darab 1 országra. Az hogy pl az intel több helyen is van azt egynek veszem, mert egy nagy "monstrum" vállalkozás.
"A böngésző nem a framework-öt szolgáltatja, mivel a böngésző egy felület, egy I/O interfész. De csak a HTML és a CSS pároshoz, ugyanis a javascript elég jól elvan magában is, konzolból futtatva."
A HTML CSS páros is elvan konzolból is, az hogy nem úgy néz ki azt lehetne mondani a javaScript-re is, azok a 3D JavaScript animációk hogy mennének konzolból? Ugyanúgy mondhatom hogy megfelelő körülmények között pl egy sima manual esetében vígan elvan konzolból is a HTML CSS is.
"Nem akarnék bezavarni a gondolatmenetedbe, de te erősen kevered a -framework-, az -API- és az -interfész- fogalmakat, hogy egyéb, értelmezés-beli zűrökre már rá se mutassak."
Hol nem fér bele a framework fogalmába? :
"In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. A software framework provides a standard way to build and deploy applications. A software framework is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate development of software applications, products and solutions. Software frameworks may include support programs, compilers, code libraries, tool sets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system."
Forrás: [link]
Az hogy inkább I/O interfész-nek szokák tekinteni az más kérdés. A böngésző tekinthető virtuális gépnek is. Továbbá minden programozási nyelv egy egy virtuális gép gépi utasításainak is tekinthető.
"
" Nem utolsó sorban ami manapság már elengedhetetlen, kezeljen hálózatot"
Micsoda kezeljen hálózatot (elengedhetetlenül) józsi? Egy szövegszerkesztő, egy interpreter, egy fotóeditor, egy konverter, egy adat-kompresszor?
Persze, nem mintha ne lehetne mondjuk egy UDP-t, FTP-t megírni, ha mégis szükség lenne rá. Vagy neked jobban esik más sz.rában (bugok) turkálni?"
Az hogy kiragadsz egy mondatot a szövetkörnyezet nélkül és körítést írsz hozzá, aminek nem sok köze van a mondanivalómhoz attól nem mondtál okosat. Saját oprendszer esetében lévő hálózatkezelésről írtam.
Definiáld hol a határ a "-framework-, az -API- és az -interfész-" fogalmak között!
Aztán nehogy sarokesetet találjak.
"Aligha van annyi"
Intel
IBM
AMD
ST Micro
Altera
Texas Instruments
Motorola
Atmel
Microchip
Cypress
Espressif
Arm
Fujitsu
FreeScale
Xilinx
Renesas
Infineon
TransMeta
Nvidia
Ati
Western Digital
UMC
Centaur
NXP
Epson
Maxim
Toshiba
Winbond
Silicon Labs
Intersil
LSI
Ezek jutottak eszembe így hirtelen.
API - Jobbára egy operációs rendszer elérhető és programozható szolgáltatásainak jól strukturált, szabványszerű összessége. Jellemzője a nyelvfüggetlenség, na meg az, hogy nemigen lehet cserélgetni.
Framework - Egy adott feladat vagy feladatcsoport ellátásának megkönnyítésére íródott, nyelvspecifikus függvénycsomag.
Interface - Lehet szoftveres vagy hardveres is, mint pl a PC parallel portja. Ez egy szigorúan definiált, programozható "felület". Jellemzője az erős körülhatároltság.
a framework-ok megkönnyítik a munkát, meggyorsítják azt, de nem muszáj használni őket, de ennyi erővel nem muszáj magas szintű nyelvet sem használni, írj gépkódban mindent, mert a magas szintű nyelvek már szintén sok dolgot a kezed alá adnak, mint a framework-ok
én webfejlesztő vagyok, nem akarok minden biztonsági hibára és egyéb dologra odafigyelni, minek találjam fel megint a kereket, ha már egyszer feltalálták?
backend fejlesztő vagyok, a bootstrap pl segít a böngészőfüggetlen design létrehozásában, nem kell vele külön bajlódnom, sem azzal, hogy responsive legyen az oldalam
mellette játékfejlesztéssel foglalkozom unity motorral
ott rengeteg terhet levesz a vállamról a játékmotor, nem kell 100001 dolgot megtanulnom ami amúgy nem is érdekel és az nem lenne kreatív, hogy magamtól írok ugyanolyan fizikát, shadert......mint mondtam nem akarom feltalálni megint a kereket
én a felesleges körök helyett inkább használom a megfelelő eszközöket amik segítik a munkámat és a kreativitásomat nagyon is kitudom élni!
ahelyett, hogy azt kellene kitalálnom (sok-sok utánajárással!), hogy milyen biztonsági résekre figyeljek, meg hogyan oldjak meg bizonyos problémákat, helyettük inkább tényleg létrehozom amit szeretnék
de mondom, ha annyira szabadságot akarsz térj vissza még gépi kódra, ott nincs semmi olyan ami megzavarhatna abban, hogy "nem te csináltad meg", ott alkothatsz szabadon :) de nem mind1, hogy mit és mennyi idő alatt végzel el, főleg ha vannak határidők
Ez a felsorolás 31 elemű, ami messze van az 500-tól.
"API - Jobbára egy operációs rendszer elérhető és programozható szolgáltatásainak jól strukturált, szabványszerű összessége. Jellemzője a nyelvfüggetlenség, na meg az, hogy nemigen lehet cserélgetni."
"egy program vagy rendszerprogram azon eljárásainak (szolgáltatásainak) és azok használatának dokumentációja, amelyet más programok felhasználhatnak. Egy nyilvános API segítségével lehetséges egy programrendszer szolgáltatásait használni anélkül, hogy annak belső működését ismerni kellene."
Forrás : [link]
Az csak egy leggyakoribb esete amit mondasz.
"Framework - Egy adott feladat vagy feladatcsoport ellátásának megkönnyítésére íródott, nyelvspecifikus függvénycsomag."
Ugyanez beletartozhat az API fogalmába is, azzal a különbséggel hogy az API az nem nyelvspecifikus, de még úgy is megírható hogy az legyen. Nem "illik" egy API-nak semmilyen prog. nyelvet preferálni, de tulajdonképpen ha nem nyelvspecifikus az valójában ansi c nyelvspecifikus. A windows API-k mind mind ansi c nyelvspecifikusak.
"Interface - Lehet szoftveres vagy hardveres is, mint pl a PC parallel portja. Ez egy szigorúan definiált, programozható "felület". Jellemzője az erős körülhatároltság."
Itt meg megemlíteném a pascal és annak különböző változatait beleértve a delphi-t is példának. Ott a különböző előre "gyárilag" megírt unit-ok azok különböző framework-ök, de mégis az a prog. nyelv azt a felületet ami elérhető úgy hívja hogy interface(, utána meg van az implementation rész) Igaza van hogy úgy hívja? Igen igaza van, hiszen azaz elérhető interfésze. Ez egy keretrendszer az is igaz? Igen.
---
Jó túltoltam a framework fogalmát a múltkor, de ezt bele is fogalmaztam.
"Ez a felsorolás 31 elemű, ami messze van az 500-tól."
A félszáz, az ötven, nem pedig 500.
"A HTML CSS páros is elvan konzolból is,"
"A böngésző tekinthető virtuális gépnek is. Továbbá minden programozási nyelv egy egy virtuális gép gépi utasításainak is tekinthető."
" A windows API-k mind mind ansi c nyelvspecifikusak."
Tudod mit? Én itt feladom.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!