argon bulletin board
Факултети => Факултет по математика и информатика => Темата е започната от: JOKe в 19.06.2006, 10:07:30
-
Тази тема не е насочена към нищо свързано с Микрософт.
Wse pak e fakt che poradi izlizaneto na C# i blyskaneto v nego na novi Blaginki , Blaginki idvashti ot scriptovite ezici tova promenq ezicite koito haresvame ili obichame kakvo mislite vie za tova ? dali blaginkite sa polezni ili vredni ? haresvat li vi ili ne ? ako da zashto ako ne zasho ?
Govorq za neshta kato LINQ na C# 3.0 koito shte byde i v koito shte moje da napishesh neshto takova:
var namesAndOrderIDs =
from c in customers
where c.Country == "Denmark"
from o in c.Orders
where o.OrderDate.Year == 2005
select new { c.Name, o.OrderID };
ili
var custTotalOrders =
from c in customers
join o in orders on c.CustomerID equals o.CustomerID into co
select new { c.Name, TotalOrders = co.Sum(o => o.Total) };
?
otdeno i za tip "var" koito prosto sam namira dadenoto neshto ot kakyv tip e ?
Ta dori GENERICS !
da generics sa udobni shte kaje Stilgar pisehsh na 1 miasto ispestqvash 200 cast-a
SUPER !
obache kakvo stava kogato podavame generics mejdu funkcii ?
kakvo stava kogato iskame edna funkciq da prieme razlichni tipizirani kolekcii
naprimer
public void <T> haxor(List<T> a) { } // moje da barkam sintaksisa
a koga se pishe
public void haxor(List<?> a)
a moje bi
public void <T> haxor(List<? extends T> a,T b)
tezi neshta ne uslojnqvat li neshtata
da ne pitam kakvo stava s raw type-a t.e. ako napisha
public void haxor(List a) // koeto veche e NEPREPORACHITELNO vapreki che Stilgar bi kazal ako vi kefi taka si go polzvai taka.
drugo primerno v Java 1.6 shte ima integrirana v samata virtualna mashina DB. ? kakvo mislite za ideqta ?
otdeno PODOBNI Blaginki karat i drugi ezici da bydat "prestrukturirani i promeneni"
sigurno povecheto ot vas sa chuli che 2008 ili i 9-ta beshe izliza nova versiq na C++. YEAH
tam shte ima Generics tip String i etc . ( tai kato Generics bili po dobri ot templates )
-
1) Има галактическа разлика между "благинки" в езиците за програмиране и "благинки", които се предоставят от допълнителен фреймуърк (Например езикът Java и Java Framework API са две много различни неща, както и C# и съответно .NET Framework API).
2) Типът данни VARIANT е познат от десетилетия и мисля, че за пръв път влиза в употреба при реализацията на езика BASIC, а в съвременните езици той (VARIANT) макар и рядко се среща в Delphi, а на ниво Windows API типът VARIANT се представя като OLEVariant (OLE - Object Linking and Embedding). Едно от нововъведенията във VB.NET v1 и v2 беше, че типът VARIANT вече го няма! Източниците за данни стават все по-абстрактни а самите данни се представят със все по-сложни структури, така че един "обобщаващ" тип, който сам знае какъв тип данни съдържа в себе си всъщност е много удобна "благинка".
В термините на Дзен будизма, бих могъл да направя следната аналогия:
Като ученик по бойни изкуства за мен ударът бе просто удар, а блокът - просто блок!
Като учител по бойни изкуства за мен ударът вече не е удар, а блокът вече не е блок!
Като майстор на бойните изкуства за мен ударът отново е удар, а блокът - отново блок!
Заменете "бойни изкуства" с "програмиране", "удар" с "VARIANT" и махнете частта с блока - оказва се, че това е нормалният път на еволюцията.
3) GENERICS са полезни, тъй като още по време на компилация излизат грешните каст-вания на обекти. Ако си понапънеш мозъка ще измислиш начин да измамиш GENERICS и в колекция от предварително определен тип данни да вмъкнеш обект от тип, който няма нищо общо с обявения в декларацията на GENERIC колекцията, но целта не е да заобикаляме правилата, а да се възползваме от тях.
Не си задължен да използваш GENERICS нито в Java, нито в .NET базираните езици. Специално в .NET 2 има две пространства от имена за колекции - едните са нормални колекции (System.Collections), които просто представят множество от обекти (System.Object), а другият namespace (System.Collections.Generics) предоставя набор от колекции (класове), които представляват множество от строго типизирани обекти. Идеята е, че в над 90% от случаите се налага в колекциите да се държат обекти, които са представители на точно един конкретен клас, така че използването на GENERICS в над 90% от случаите е напълно обосновано.
4) Така нареченото Java DB всъщност е Apache Derby DB, което от своя страна е IBM Cloudscape DB. И не е част от езика, а част от Java Framework-а. Вместо да сваляш DB-то - то само идва при теб, което аз лично го намирам за удобно (друг е въпросът, че точно тази база данни леко понамирисва и аз лично предпочитам стар и чист Cloudscape, дори Apache Derby, но не и Java DB- лично мнение)!
-
t.e. za teb tova sa dobre doshli neshta hubavo
zakvo togava izobshto da polzvame Java ili C# neka polzvame Groovy ili Ruby
gotinoto na Java e v tova che e "chista" lesno se vijda lesno se maintrainva vsichko e qsno i lesno nqma slojni neshta nqma < nqma char ******a nqma int &b i etc. nqma ref out mout bout tova sa neshta koito skoro shte si zaminat zashtoto shte stane IMPOSIBLE za poddarjane ot mnogo bozi kakto v momenta naprimer sa JavaScript neshtata tam primerno pravilata ne vajat vseki pishe kakto si iska nikoi neznae kvo pravi drugiq.
btw tva s 2te kolekcii ot imena me ozadachi
znachi ako si napravq metod naprimer s
System.Collection.ArrayList ? predpolagam ima takyv tip to nqma da moga da go vikam s
System.Collection.Generics.ArrayList i obrantoto taka li ?
-
Според мен много по-изчистено ми изглежда когато всичко е на един ред. Така че не виждам какво е ясното на аналогичния код в Джава. А и все едно в Джава няма както се изказваш "благинки"?
-
В Java problema e che samo blaginki ima ... i to s tovonove i sq kato slojat i tiq sha doidat mnogo v povehce ;>
-
Недей си мъчи главата с толкоз сложни работи ;).
-
btw tva s 2te kolekcii ot imena me ozadachi
znachi ako si napravq metod naprimer s
System.Collection.ArrayList ? predpolagam ima takyv tip to nqma da moga da go vikam s
System.Collection.Generics.ArrayList i obrantoto taka li ?
Не съм си блъскал главата дали единия е наследник на другия по простата причина, че това слабо ме интересува, поради няколко факта, а именно:
1) Занимавам се професионално с Java, а програмирането с .NET и C# ми е хоби.
2) Виж точка първа.
-
Я кажи, що мина от .NET на Java ;)?
-
btw tva s 2te kolekcii ot imena me ozadachi
znachi ako si napravq metod naprimer s
System.Collection.ArrayList ? predpolagam ima takyv tip to nqma da moga da go vikam s
System.Collection.Generics.ArrayList i obrantoto taka li ?
kvo znachi da mojesh da go vikash
tva prosto sa razlichni tipove
ArrayList != ArrayList<> (da ne govorim che ArrayList<> se kazva prosto List<> no Queue naprimer si e Queue<>)
A inache vsichko e iasno
ako ne sa arni novite raboti nikoi niama da gi polzva toest niama absolutno nikvo znachenie che sa tam
ako sa arni sa si arni i tva e
-
Я кажи, що мина от .NET на Java ;)?
Shtoto na .net pishat samo The Dark Side a Ivan iska da e Jedi :> za tova ipshe na Java ;>
ili shtoto ima povehce rabota :)
-
Я кажи, що мина от .NET на Java ;)?
Защото обичам да върша прости неща по сложния начин :)
Защо трябва да драгна и дропна едно дърво в Windows Forms, когато мога цял ден да си пиша функция за автоматично скролиране на дърво в SWING?
Защо да пиша един BMP Entity Bean цял ден, когато в .NET 2 мога да използвам автоматичните провайдъри?
Защо да пиша 7 тага в JSF, за да свърша това, което с ASP.NET мога да го свърша с едни таг?
Отговор: Защото ми плащат да го върша!
Всеки може да драгва и да дропва, всеки може да кликва два пъти върйу съответния компонент и да пише код в обработчика не default събитието.
Ами ако великите програмисти на .NET опрат до услугите на notepad и конзолните компилатори, тогава какво става? Нека никой не се обижда, но до сега съм видял само двама души, които могат да пишат C# код в notepad и да го компилират до DLL Assembly. Единият от тези програмисти съм (бях) аз, ако познавате и други - споделете!
Познаването на една хубава среда не те прави ДОБЪР програмист, а МЪРЗЕЛИВ програмист, а с мързела лесно се свиква! За мързел не плащат или по-точно плащат, но не толкова, колкото за работа!
Вече става късно, ще си развивам постулатите друг път!
JOKE, а защо мислиш, че ти стоиш от правилната страна на силата? Сигурен ли си, че не си точно Dark Sider? Може би точно .NET се опитва да възстанови баланса...
-
.NET e ot Dark Side be
podchiniava se na Emperor Bill koito upravliava Imperiata
az puk pisha na .NET shtoto NAI-MRAZIA DA RABOTIA! (na 2ro miasto mrazia da mislia)
-
Я кажи, що мина от .NET на Java ;)?
Защото обичам да върша прости неща по сложния начин :)
Защо трябва да драгна и дропна едно дърво в Windows Forms, когато мога цял ден да си пиша функция за автоматично скролиране на дърво в SWING?
Защо да пиша един BMP Entity Bena цял ден, когато в .NET 2 мога да използвам автоматичните провайдъри?
Защо да пиша 7 тага в JSF, за да свърша това, което с ASP.NET мога да го свърша с едни таг?
Отговор: Защото ми плащат да го върша!
Всеки може да драгва и да дропва, всеки може да кликва два пъти върйу съответния компонент и да пише код в обработчика не default събитието.
Ами ако великите програмисти на .NET опрат до услугите на notepad и конзолните компилатори, тогава какво става? Нека никой не се обижда, но до сега съм видял само двама души, които могат да пишат C# код в notepad и да го компилират до DLL Assembly. Единият от тези програмисти съм (бях) аз, ако познавате и други - споделете!
Познаването на една хубава среда не те прави ДОБЪР програмист, а МЪРЗЕЛИВ програмист, а с мързела лесно се свиква! За мързел не плащат или по-точно плащат, но не толкова, колкото за работа!
Вече става късно, ще си развивам постулатите друг път!
JOKE, а защо мислиш, че ти стоиш от правилната страна на силата? Сигурен ли си, че не си точно Dark Sider? Може би точно .NET се опитва да възстанови баланса...
аз пиша на java щото ме кефи :П
-
Аз пък на Python, пак щото ме кефи
-
Аз пък на Python, пак щото ме кефи
obqsni vryzkata mejdu Python i RUBY, 4e ush imalo neshto obshto ama i 2ta sa mi nepoznati i mi e interesno prsoto
-
Аз пък на Python, пак щото ме кефи
obqsni vryzkata mejdu Python i RUBY, 4e ush imalo neshto obshto ama i 2ta sa mi nepoznati i mi e interesno prsoto
I az tva Ruby ne go znam za kvo stava duma.
Izchezvam da gledam Mexico vs. Portugal
-
Ruby ist eine objektorientierte, interpretierte Programmiersprache. Sie hat ihre Wurzeln in Perl, Smalltalk, Python, LISP, Bash und CLU.
Това ми прилича на поредния скриптов ЕП. Нищо чудно в скоро време да се появи и някой, който да писне що не е включен в ЕП за КСИ. Това пак ме наведе на идеята да събера Видндоус и Линукс, и да направя ОС Бозоус.
-
всъщност Ruby е доста добър скриптов език може би наи добрия в момента
Ruby On Rails го водят единствената добра Open Source алтернатива на J2EE и .net