Gość lukas_gab Opublikowano 13 Sierpnia 2006 Zgłoś Opublikowano 13 Sierpnia 2006 Może jestem głupi ale c# jest szybsze w tworzeniu i wygodniejsze od c++ ? no ja skończyłem tablice funkcje pętle operatory i trochę jeszcze z c++ i to by błąd , postanowiłem się przerzucić na C# ale ... program standard HELLO WORLD i ... : C#: using System; class Test { static void Main( ) { System.Console.WriteLine( " Witaj !!! " ) ; } } C++: #include<iostream.h> main{ cout<<"Hello World" ; } Może ktoś wytłumaczyć jak to jest ? Może dopiero w parotysięczno linujkowych programach widać różnice ?A i jaką książkę polecacie do nauki ? umiem trochę c++ ( napisałem gierkę tekstowa na if else i pentlach ale jej już nie mam ... miała parę paragrafów ... stwierdziłem , że musze się trochę poduczyć , bo parę set paragrafów na if else można sie posrać , a i chciałem wprowadzić system walki .... jednym słowem z motyką na słonce ;d) Oczywiście w miare tania i treściwa , jak nie będzie tania to każdy wie jak zdobyć* książki jak są drogie ... *Zaoszczędzić , zarobić, kupić ... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
o-skar Opublikowano 13 Sierpnia 2006 Zgłoś Opublikowano 13 Sierpnia 2006 chyba main(){...}? ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 (edytowane) C++: #include<iostream.h> main{ cout<<"Hello World" ; } 4 linijki i 4 bledy :P Wiem, czepiam sie :] No niestety mam wrazenie ze nie ma dobrego jezyka programowania. C++ +jezyk o bardzo duzych mozliwosciach, przykladem jestem biblioteka boost +ulatwia pisanie szybkich programow (duza zasluga szablonow) -standard nie definiuje ABI -standard z 2003 roku nie mowi nic o watkach. (Jest to bardzo duzy minus). Z pomoca przychodzi OpenMP(VC++2005, g++ 4.2) i C++0x (na to musimy poczekac jeszcze z 3 lata) -strasznie porabana skladnia, zwlaszcza przy szablonach, a C++0x wprowadza jeszcze kolejne rzeczy. Doprowadzi to do tego ze osoba zaczynajaca programowanie od C++ zeby jako tako poznac ten jezyk bedzie sie musiala uczyc go min 6-8lat. Java Nie cierpie tego jezyka. Wolny, nieczytelny (jezyk bez definiowania operatorow, blee ), prosty o malych mozliwosciach. Osobiscie widze dwa plusy, ktore nie sa plusami samego jezyka +JVM -z jednej strony wolne to jest ale przynajmniej jest jakas przenosc. Ale czy do tego potrzebny byl jezyk Java? Nie! Istnieja nawet kompilatory C++ kompilujace do bytecodu Javy +duzo ilosc bibliotek C# Jezyk taki sobie. Najwieksza zaleta to duza ilosc bibliotek. Ale tak jak juz pisalem to nie jest zaleta jezyka samego w sobie. Druga zaleta to swietnie narzedzie jakim jest Visual C#. Tylko kurcze to tez nie jest zaleta samego jezyka. No w C# 3.0 jakis plus moze sie znajdzie. D +Duze mozliwosci +Jezyk czytelniejszy od C++ 2003 -Mala popularnosc i ilosc bibliotek. -Nie ma az tak duzej przewagi zeby wygryzc C++. -Skladnia tez nie jest taka prosta Celowo nie wspominalem o Garbage Collector. Jak kazda rzecz i to ma swoje zalety i wady. Dlatego nie dalem tego ani do plusow ani do minusow. Osobiscie pisze w C++, pod .NET pisze malo a jak juz to przewaznie w C++/CLI bo musze czesto dolaczac duzo kodu w C++. Mam nadzieje ze w ciagu 2 lat zmienie jezyk i raczej nie bedzie to zaden z tych. Edytowane 14 Sierpnia 2006 przez Megabyte Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość 05_03_1992 Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 hmmm powoli sie ucze tego c# i powiem, że jak się załapie początki (klasy, metody, struktury itd....) to potem nauka idzie bardzo przyjemnie (przynejmniej narazie) ja dzisiaj musze solidnie potrenowac bo czoraj nawet do tekstu nie zerknalem Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Haquim Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 C#: using System; class Test { static void Main( ) { System.Console.WriteLine( " Witaj !!! " ) ; } } C++: #include<iostream.h> main{ cout<<"Hello World" ; } public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. }}Hehe Java lepsza od C# a nawet C++ , bo nie trzeba nic importować :D Na początek spróbuj złożyć coś takiego , programik który będzie wymnarzał macierze . Ewentualnie naklep sobie chat , zobaczysz różnicę , w Javie/C# zmieścisz się na bank w 1000 linijkach. Albo zrób programik okienkowy ,który umożliwia np. wczytywanie obrazków (oczywiście jeśli obrazek jest zbyt duży to umożliwi przweijanie w okienku). Gierkę typu memory z punktacją i odmierzaniem czasu. Albo zrób sobie prosty program który korzysta z bazy danych,gniazdek,wątków,przetwarza dokumenty XML . Jak uklepiesz cokolwiek z tego to zobaczysz różnicę. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość lukas_gab Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 (edytowane) Przepraszam , za błędy , to co pisałem , ze napisałem to napisałem z kursem , a to co teraz pisałem to tak z głowy szybko , i nawet kombilatorem nie sprawdzałem , a nie mam umiejętności maszynowego szukania błędów w kodzie ... ( kiedyś godzinę szukałem błędu , a okazało się , że nie miałem ; na końcu jednej instrukcji ) , to było jedynie obrazowe ... Ale nikt nie odpowiedział na moje pytanie , dlaczego c# jest prostszy , jak widać na przykładzie , ma bardziej zagmatwaną składnie ? Dalej , jaką polecacie książkę do nauki tego języka , i skoro .net istnieje od 2000 roku , to dlaczego znalazłem jedynie 3 kursy w necie ( polskie ) i to jeszcze w tym jeden dla zaawansowanych ? C++ jest z pół tony , a tego prawie , że nic ...A o D to w ogólnie nie słyszałem ... A i jakie teraz ma zastosowanie VB ? Podobno aplikacje z pod tego chodzą cienko a został dodany do VS2005 ? ------------ Zainim to napisałęm , to niewidziałem postu wyżej , w tym samym czasie chyba ;d Edytowane 14 Sierpnia 2006 przez lukas_gab Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Haquim Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 (edytowane) dlaczego c# jest prostszy , jak widać na przykładzie , ma bardziej zagmatwaną składnie ?Bo używa domyślnie wszystkich bajerów znanych z C++ . Wygląd trochę na hybrydę Javy,C++ i Smalltalka. W tym przykładzie :,musi być klasa using System;//użyj przestrzeni nazw System jak w C++ class Test {//podejście jak w Javie static void Main( ) {//pomieszanie C++ i Javy System.Console.WriteLine( " Witaj !!! " ) ;//a to prawie jak Java } } Do nauki programowania od podstaw to najlepsze są takie zestawy : C++ Arkana C++ Thinking in C++ (trochę słabsze niż arkana, ale przydatne ) JavaCore Java albo Thiniking in Java tutorial suna C#C# i NET Thinking in C# (elektroniczna wersja) Tutorial Fajny przykładzik , a na końcu linki -------------------------------------------------------------------------------------------------------- Nie ma wielkich różnic w prędkości działania C#,VB.NET,C++.NET czy innych języków NET bo wszystkie są kompilowne do kodu CLR . VB był bardzo wygodnym narzędziem do programowania w Windows i MS office. Zwłaszcza w USA ,a VB.NET jest właśnie przeznaczony dla programistycznych kobatantów takich 40,50 letnich. Edytowane 14 Sierpnia 2006 przez Haquim Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość lukas_gab Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 (edytowane) Mój wuja stary matematyk coś tam skleca w qbasic , to trza go trochę nawrócić ... Skoro zarówno c++ ma zamierzaną nową wersje , a c# ma być wydane w wersji 3.0 to co się bardziej opłaca uczyć ? Chodzi mi o programy zwykłe okienkowe , ale również o większe projekty.Ale ciągle nie rozumiem po kiego grzyba to : System.Console.WriteLine jak można to : cout << ? ----------- Ciekawa pozycja co o tym myslicie dobre to ? klik Edytowane 14 Sierpnia 2006 przez lukas_gab Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Haquim Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 (edytowane) System.Console.WriteLine jak można to : cout << ?System - przestrzeń nazw Console - klasa WriteLine - metoda Uwaga : ten System to można sobie podarować ale, jeśli napiszesz własną klasę "Console" lub zamiportujesz inną przestrzeń nazw w której istnieje taka klasa i napiszesz coś takiego : Console.WriteLine(""). kompilator nie będzie mógł stwierdzić o którą klasę ci chodzi ,aby zaznaczyć że chodzi ci o tą klasę z przestrzeni System wpisujesz to z przodu. cout - to też klasa tylko że w c++ a << to normalnie jest przesunięcie bitowe w lewo ,ale akurat w w cout ten operator jest przeciążony. Więc ktoś nie znający C++ mógłby też powiedzieć że to nie normalne ;) A jak ci się nie podoba to się nie stresuj i rób wszystko w C++ (tylko wtedy warto się poduczyć Qt Qt lub GTK+ GTK+). Obie te bibloteki mają swoje wersje do współpracy z C# (Qt# i GTK#) więc jeżeli opanujesz tworzenie aplikacji w jednej z nich za pomocą C++ przesiadka na C# będzie prosta. Edytowane 14 Sierpnia 2006 przez Haquim Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość lukas_gab Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 Nie , że mi sie nie podoba, ale troche to dużo obiętościowo jest ... Otrzywiscie jestem zainteresowany c#. Tak patrząc , to większosc argumentów wyższości c# nad c++ jest taka sama jak wyższości c++ nad c ciekawe co będzie po c# ... ( oby nie nastąpiło to szybko ;) ) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 Nie , że mi sie nie podoba, ale troche to dużo obiętościowo jest ... Otrzywiscie jestem zainteresowany c#. Tak patrząc , to większosc argumentów wyższości c# nad c++ jest taka sama jak wyższości c++ nad c ciekawe co będzie po c# ... ( oby nie nastąpiło to szybko ;) ) CSharp nie zastąpi C++, w dyskusji wszystko to zostało już powiedziane. Jeśli chodzi o tworzenie oprogramowania nie wymgającego duzych mocy obliczeniowych dla windows to zastąpienie będzie mieć miejsce i na pewno go zastąpi , w pozostałych przypadkach na pewno nie... C++ zostanie zastąpiony przez inny jezyk może D, moze E...... w każdym razie musi to być coś NIEZARZADZANEGO, więc wszelkie wirtualne maszyny odpadają. Co do argumentów o wyższości czy nie wyższości - to rynek decyduje co sie używa jesli rynek uznał ze w czymś tworzy się oprogramowanie znacznie szybciej, wygodniej bezproblemowo to właśnie tego sie będzie używać. Głównym argumentem dziś jest szybkość pisania oprogramowania i jego stabilność - dopracowana mechanika programu a nie zawracanie sobie głowy choćby wyciekami pamieci - to są właśnie głowne argumenty: Garbage Collector, Namespace i .NET Framework Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 CSharp nie zastąpi C++, w dyskusji wszystko to zostało już powiedziane. Jeśli chodzi o tworzenie oprogramowania nie wymgającego duzych mocy obliczeniowych dla windows to zastąpienie będzie mieć miejsce i na pewno go zastąpi , w pozostałych przypadkach na pewno nie... C++ zostanie zastąpiony przez inny jezyk może D, moze E...... w każdym razie musi to być coś NIEZARZADZANEGO, więc wszelkie wirtualne maszyny odpadają.Zdecydowanie sie nie zgadzam. Jak dla mnie nastepca C++ w kategorii szybkosc i mozliwosci bedzie jezykiem bardzo wysokiego poziomu (wyzszym niz obecne jezyki skryptowe) o bardzo prostej skladni. Nie bedzie takich rzeczy jak szablony bo jezyk bedzie mial lepsze odpowiedniki. Mam nadzieje ze taki jezyk wejdzie jeszcze przed 2010 rokiem. :D Do tego czasu bede programowal w cpp :] Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 (edytowane) Nie wiem czy dobrze mnie zrozumiałeś :unsure: . Chodziło mi o to że język który będzie nastepcom C++ będzie musiał być przede wszysktim niezarządzanym językiem z bardzo duzymi możliwościami i duża szybkością, w wydajności i możliwościami powinien dorównywać a nawet lepiej aby przewyższał C++ bo tylko taki język nada się na tworzenie wirtualnych maszyn aby tacy jak np. ja mogli pisać w czymś zarządzanym jak CSharp. Aha koniecznie ten nowy język musi mieć nowoczesne elementy jak wbudowany odśmiecacz.... pytanie tylko jest takie... czy niezarządzny język może mieć odśmiecacz ;].... kto mi na nie odpowie (ja wiem) ;] Do tego czasu bede programowal w cpp :]Powodzenia. :mur: A i jeszcze jedno Java i CSharp to języki do konkrentego celu (windows) i pod konkretne zadania (pisanie oprogramowania dla windows, może potem gry itd.), poprostu mają inne zastosowanie niż C/C++ tam gdzie to tlko możliwe powinno sie wybierać te dwa pierwsze, wysoka wydajność wymaga już tych dwóch drugich do czasu powstania ich następcy. Edytowane 14 Sierpnia 2006 przez razor1 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość lukas_gab Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 Czyli tak : Aplikacje - c# java Gry ( poważne projekty , z swoimi enginami ) -c/c++ Gry "proste" czyli rpg, typu adom , lub odchłań , jakieś strategie typu Menager Żużlowy ( ten wiem , że napisany w pascalu ) czy inne tego typu gry to w czym ? c++ ,a może coś starszego jak pascal ? Co polecacie do tego typu twórczości ? Stwierdzam , że troche poczytam o c# i napisze program do stosowania dawek nowozowych w ogrodnictwie uzależnionych od odczytów z ph, ec metrów ... ciekawe to będzie i ułatwiające , życie ... Taki większy arkusz kalkulacyjny ... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Haquim Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 (edytowane) Gry "proste" czyli rpg, typu adom , lub odchłań , jakieś strategie typu Menager Żużlowy ( ten wiem , że napisany w pascalu ) czy inne tego typu gry to w czym ?Oczywiście Javę (nawet platformówkę , na pełny ekran da się dosyć przyjemną zrobić) a jak nie lubisz to C#/C++. jak się zaweźmiesz to nawet gierkę 3D można naklepać na DirectX. Edytowane 14 Sierpnia 2006 przez Haquim Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 Nie wiem czy dobrze mnie zrozumiałeś :unsure: . Chodziło mi o to że język który będzie nastepcom C++ będzie musiał być przede wszysktim niezarządzanym językiem z bardzo duzymi możliwościami i duża szybkością, w wydajności i możliwościami powinien dorównywać a nawet lepiej aby przewyższał C++ bo tylko taki język nada się na tworzenie wirtualnych maszyn aby tacy jak np. ja mogli pisać w czymś zarządzanym jak CSharp. Aha koniecznie ten nowy język musi mieć nowoczesne elementy jak wbudowany odśmiecacz.... pytanie tylko jest takie... czy niezarządzny język może mieć odśmiecacz ;].... kto mi na nie odpowie (ja wiem) ;] Powodzenia. :mur: A i jeszcze jedno Java i CSharp to języki do konkrentego celu (windows) i pod konkretne zadania (pisanie oprogramowania dla windows, może potem gry itd.), poprostu mają inne zastosowanie niż C/C++ tam gdzie to tlko możliwe powinno sie wybierać te dwa pierwsze, wysoka wydajność wymaga już tych dwóch drugich do czasu powstania ich następcy. To w końcu co chcesz mieć? Język niezarządzany czy szybki? W ogóle co rozumiesz pod pojęciem niezarządzany? A przy cpp zostaje dlatego że bardzo dobrze go znam i mam w nim kupe kodu napisanego, którego moge wykorzystać w następnych programach. Pisanie tego od nowa w C# byłoby bez sensu. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość lukas_gab Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 Kurcze od 2 dni borykam sie z problemem , że jak chce utworzyc nowy projekt w VC# to karze mi zaglądnąć do dziennika zdarzeń i wyswietla puste okno .. zna ktoś lekarstwo na to ? Koś pracuje w VS i się z tym spotkał ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 14 Sierpnia 2006 Zgłoś Opublikowano 14 Sierpnia 2006 W ogóle co rozumiesz pod pojęciem niezarządzany? No cóz to podwaliny rozumowania jak działa język programowania kod nie zarzadzany i zarządzany, dwie różne koncepcje do pewnego czasu był tylko ten pierwszy... Jak nie łapiesz to główne pojęcie związane z tym to wirtualna maszyna, managed-unmanaged code, prosze tu artykuł, po przeczytaniu którego powinno się wyjaśnić http://blogs.msdn.com/brada/archive/2004/01/09/48925.aspx Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 No cóz to podwaliny rozumowania jak działa język programowania kod nie zarzadzany i zarządzany, dwie różne koncepcje do pewnego czasu był tylko ten pierwszy... Jak nie łapiesz to główne pojęcie związane z tym to wirtualna maszyna, managed-unmanaged code, prosze tu artykuł, po przeczytaniu którego powinno się wyjaśnić http://blogs.msdn.com/brada/archive/2004/01/09/48925.aspxHehe. Nie zrozumiałeś mnie. Ja się nie pytałem co to jest kod niezarządzany tylko jak Ty to rozumiesz. Po prostu nie potrzebnie sztucznie tworzysz podział na języki na zarządzane i niezarządzane, wielbisz garbage collector i jeszcze uważasz że to nowość. Ja żadnej magi w słowie "managed" nie widzie. Praktycznie każdy kompilator można rozdzielić na frontend i backend. Za C# nie przepadam dlatego ze jest na .NET tylko dlatego że ma małe możliwości jako język. Dla mnie metaprogramming to podstawa. C# jest popularny tylko dzięki dużej ilość bibliotek i dobrym Visual C#. Ta jak pisałem, następca C++ to według mnie język zdecydowanie wysokiego poziomu (metaprogramming obowiązkowy oczywiście). Można powiedzieć że będzie to język zarządzany ale nie tak ja robi to .NET Framework. Będzie szybszy od C# i nawet C++0x. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Haquim Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 Za C# nie przepadam dlatego ze jest na .NET tylko dlatego że ma małe możliwości jako język. Dla mnie metaprogramming to podstawa.Dlaczego ma małe możliwości ? A co ten metaprogramming (metaprogramowanie)? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 tylko jak Ty to rozumiesz. Właśnie tak jak tam jest opisane. wielbisz garbage collector Dokładnie! to bardzo ważna rzecz. Za C# nie przepadam dlatego ze jest na .NET tylko dlatego że ma małe możliwości jako język. No właśnie! właśnie z tego powodu CSharp czy JAVA nigdy C++ nie zastąpi - bo to języki do innych celów. Każdy ma swoje preferencje i jakieś wstępne wymagania co chce robić i do tego dopiero mozna dobierać język. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 Dlaczego ma małe możliwości ? A co ten metaprogramming (metaprogramowanie)? Metaprogramming to pisanie programów do pisania programów :wink: Pozwala to na rozszerzerzenie języka o funkcje, które nie przewidzieli sami autorzy języka. Metaprogramming w C++ nie jest rewelacyjny ale przynajmniej jest. Poczytaj o języku szablonów. razor1: Tylko widzisz, ja wole mieć język który pozwoli mi pisać szybkie programy szybciej niż w C# :P Osobiście dla mnie Java i C# to taka ślepa uliczka. Ślepa pod względem składni i możliwości języka, nie samej idei kodu zarządzanego. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość 05_03_1992 Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 heh ale sie bigosik robi :] ale ja juz sie bede c# uczyl jak zaczalem.... potem moze jakas java i c++ pozdr Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Haquim Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 (edytowane) Metaprogramming to pisanie programów do pisania programów :wink: Pozwala to na rozszerzerzenie języka o funkcje, które nie przewidzieli sami autorzy języka. Metaprogramming w C++ nie jest rewelacyjny ale przynajmniej jest. Poczytaj o języku szablonów.E w C# też są szablony, w C# 3.0 nawet leniwe typowanie za pomocą var zmienna = 4 i już jest to int. zC_sharp refleksje i atrybuty (metaprogramowanie): w czasie pracy programu istnieje możliwość analizy struktury kodu z poziomu tego kodu. Umożliwia to tworzenie wysoce uniwersalnych mechanizmów operujących na strukturze kodu nie znanej w czasie kompilacji. Mechanizm ten wykorzystywany jest m.in. w bibliotekach ORM, narzędziach do analizy i weryfikacji kodu czy rozszerzeniach AOP. Mechanizm atrybutów został z C# zapożyczony do Javy w wersji 1.5. W Javie i Smalltalku też jest. Trzeba tylko sie odwołać do obiektu metaklasy. Edytowane 15 Sierpnia 2006 przez Haquim Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 Haquim: C# i Java ma Generics. Tylko w porównaniu do szablonów w C++ jest to bardzo ubogie i nie umożliwia metaprogrammingu. "Of the three languages discussed here, C++ is the only one that has native metaprogramming facilities. Both Java and C# require external pre-processors or complex libraries that are capable of generating code, which then needs to be compiles separately. The fact is that few programmers know of metaprogramming techniques, make use of them or use them correctly. Nevertheless, metaprogramming can be used to accomplish a lot of good things, and it is a real weakness in a language to exclude such features at a native level." Źródło A ten cytat z wikipedi to jest śmieszny. Sprawdzałem angielską strone wikipedii i tam już takich głupot nie piszą. Czy te refleksje to reflection? Jeżeli tak to gratuluje tłumaczowi. No i nie o takie metaprogramowanie chodzi (jeżeli to można nazwać w ogole metaprogramowaniem :| ) A w C++0x masz auto zmienna=4; i juz masz int :P Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Haquim Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 Aha , to fajnie. Chociaż w sumie te szablony w C++ to zabawka dla preprocesora (czyli operowanie de fakto na tekscie) i jako takie moze zostac zaadaptowane takze w Javie czy C# nie ? PS: Szperając w sieci ,Znalazłem całkiem fajną stronkę o Pythonie i szablonach hehe. link Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 Aha , to fajnie. Chociaż w sumie te szablony w C++ to zabawka dla preprocesora (czyli operowanie de fakto na tekscie) i jako takie moze zostac zaadaptowane takze w Javie czy C# nie ? Szablony to nie zabawka dla preprocesora. To raczej męczarnia dla kompilatora. Kilkuset linijkowe programy potrafią się kompilować kilkanaście minut na mocnym sprzęcie. Kolejnym minusem jest dość trudne wyszukiwanie błędów. Z tych właśnie powodów nie wydaje mi się żeby szablony trafiły do C# albo do Javy, nie w takiej postaci jak C++. Pozatym poczytaj dokładnie link, który podałem w poprzednim poście. Zwróć uwage na to że szablony w C++ = polimorfizm statyczny, Generics w Java i C# = polimorfizm dynamiczny. Osobiście mam pomysł na całkowite zastąpienie szablonów lepszym odpowiednikiem jednak zaimplementowanie tego w C# i Javie jest niemożliwe. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 15 Sierpnia 2006 Zgłoś Opublikowano 15 Sierpnia 2006 Atrybuty i mechanizm refleksji w C# to zupełnie inna bajka, to nie cecha CSharp jako takiego a cecha platformy .NET i jest to nierozerwalnie z nią związane. A mechanizm refleksji mozna uzywać do róznych celów jak sie można łatwo domlyśleć od zwykłego przeglądania metadanych, tworzenie nowych typów danych w czasie pracy programu. Oczywiście to wszystko w czasie działania programu. C# 3.0 nawet leniwe typowanie za pomocą var zmienna = 4 i już jest to int. ^^ Mam nadzieje że nie bedom tego nadużywać :D Nadużywać w sensie stosowania tego przez programistów bo źle zastosowanie może wprowadzic niezłe zamieszanie. Ale na pewno moze to uproscić wiele spraw związanych choćby z tworzeniem i dokumentowaniem bibliotek... heh ale sie bigosik robi :] ale ja juz sie bede c# uczyl jak zaczalem.... potem moze jakas java i c++ pozdr Eee tam bigosik :lol2: poprostu to nie zachód ludzie wpierw musza sie przekonać, też tak myślałem że głupi język że małe możliwości nie znając wogóle jego podstaw i możliwości... aż do czasu bliższego poznania. Teraz jak widze hybrydowo-"obiektową" składnie C++ to aż mnie skreca... wogóle bym sie tego języka (C++) nie uczył i od początku bym zaczynał od CSharpa od momentu jego powstania :cry: :cry: :cry: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Megabyte Opublikowano 16 Sierpnia 2006 Zgłoś Opublikowano 16 Sierpnia 2006 Atrybuty i mechanizm refleksji w C# to zupełnie inna bajka, to nie cecha CSharp jako takiego a cecha platformy .NET i jest to nierozerwalnie z nią związane. A mechanizm refleksji mozna uzywać do róznych celów jak sie można łatwo domlyśleć od zwykłego przeglądania metadanych, tworzenie nowych typów danych w czasie pracy programu. Oczywiście to wszystko w czasie działania programu.No niestety Reflection w C# to jakas wielka proteza a System.Reflection.Emit jest tak prosty w użyciu że już lepiej łatwiej napisać program w C++, który stworzy metode (wpisując do pamięci opcody) i wywoła ją. W każdym bądź razie lepsze to niż nic. W C++ na razie nie ma w ogóle Reflection (pojawi się pewnie dopiero w czwartej wersji standardu). Eee tam bigosik :lol2: poprostu to nie zachód ludzie wpierw musza sie przekonać, też tak myślałem że głupi język że małe możliwości nie znając wogóle jego podstaw i możliwości... aż do czasu bliższego poznania. Teraz jak widze hybrydowo-"obiektową" składnie C++ to aż mnie skreca... wogóle bym sie tego języka (C++) nie uczył i od początku bym zaczynał od CSharpa od momentu jego powstania :cry: :cry: :cry: LOL. Wynisz C++ za to że daje Ci wybór? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Haquim Opublikowano 16 Sierpnia 2006 Zgłoś Opublikowano 16 Sierpnia 2006 (edytowane) Teraz jak widze hybrydowo-"obiektową" składnie C++ to aż mnie skreca... wogóle bym sie tego języka (C++) nie uczył i od początku bym zaczynał od CSharpa od momentu jego powstania :cry: :cry: :cry:A ja bym się tylko UMLa uczył ,Analitycy i Architekci zarabiają przecież więcej niż programiści ? Edytowane 16 Sierpnia 2006 przez Haquim Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...