Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Alt "Utilizator nou" pe T...

ULBS INFORMATICA

Index preturi

Boxa membrana tweeter infundata
 Am nevoie de poze cu un curcubeu

Whisky for Mac

Xiaomi 14 Gpay

Izolare zid exterior de scandura
 Dezinstalare drivere W11 23H3

Recomandare masina de spalat fiab...

BSOD din cauza Intel Audio DSP dr...

De ce sunt oamenii nostalgici
 Cum vand casa fara factura Hidroe...

Scor FICO minim

Tonometru compensat CAS?

polita RCA ONLINE
 

Programmers Debate

- - - - -
  • Please log in to reply
149 replies to this topic

#1
madlex

madlex

    Active Member

  • Grup: Senior Members
  • Posts: 1,270
  • Înscris: 11.07.2003
Am observat tendinta userilor de a deschide topicuri care nu au legatura directa cu subiectul acestei arii (programarea) si in care posteaza cu ardoare.
Asadar deschid acest topic pentru toate discutiile non-tehnice dar legate indirect de subiectul ariei (C & C++), cum ar fi acest topic.

Postati aici:
- observatii
- propuneri pentru imbunatatirea ariei
- critici
- laude sau multumiri
- stiri (din domeniu)
- intrebari legate de liceu sau facultate (din domeniu)
- argumente pro-contra IDE-uri
- "unelte" folosite de voi in programare
- sfaturi
- indrumari
- recomandari de carti
- definitii de termeni
- framework-uri
- engine-uri
- etc.

Mai exact orice nu are un caracter concret tehnic,dar este relationat cu subiectul ariei: programarea in C & C++.
Regulamentul se va aplica si aici in egala masura cu deosebirea ca nu voi considera off-topic decat cererile de aplicatii, care vor fi penalizate corespunzator.

Deci liber la "debate".
knock yourselves out

PS: Va rog nu postati aici probleme legate direct de programare, este doar o "zona de dezbateri".

Edited by madlex, 23 April 2008 - 01:58.


#2
madlex

madlex

    Active Member

  • Grup: Senior Members
  • Posts: 1,270
  • Înscris: 11.07.2003
Incep eu :)

Ce IDE-uri folositi, care va place cel mai mult si de ce?

Cristos a Inviat si Paste Fericit pentru toti.

#3
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
wxDev-C++ , fata de traditionalul Dev-C++ are si un RAD pentru cine vrea sa foloseasca wxwidgets
Paste Fericit

#4
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,598
  • Înscris: 30.07.2003
Cum vedeti voi C/C++ atit ca limbaj de aplicatii obisnuite (nu low, driver-e, OS etc.) cat si framework-urile bazate pe el in contextul actual/viitor cand MS/Sun/IBM/Apple/etc. din dorinta lor de a avea limbaje/tehnologii proprii si dezvoltind framework-uri puternice pe sistemele lor, atrag tot mai mult programatorii spre astfel de limbaje ?!
Eu vad ca doar cei din zona Unix-like il mai au la suflet...

#5
LowKick

LowKick

    Member

  • Grup: Members
  • Posts: 308
  • Înscris: 18.05.2007

View Postneagu_laurentiu, on May 2 2008, 16:08, said:

Cum vedeti voi C/C++ atit ca limbaj de aplicatii obisnuite (nu low, driver-e, OS etc.) cat si framework-urile bazate pe el in contextul actual/viitor cand MS/Sun/IBM/Apple/etc. din dorinta lor de a avea limbaje/tehnologii proprii si dezvoltind framework-uri puternice pe sistemele lor, atrag tot mai mult programatorii spre astfel de limbaje ?!
Eu vad ca doar cei din zona Unix-like il mai au la suflet...

Eu sunt un fan c++/asm si sa zicem cam imi place sa lucrez la nivelul asta ,dar uneori ele nu sunt de ajuns. Prefer sa fac o aplicatie in c++ in loc de java sau .NET pt ca nu am sentimentul ca se taraie. Pe de alta parte la capitolul web applications, c++ e cam slabutz chiar rau de tot. Nu mi se pare o solutie sa fac module de apache sau ISAPI filters sau alte tampenii de genul asta care sunt ineficiente si greu de mentinut. De asemenea multe framework-uri independente de platforma nu sunt destul de mature pt production si/sau nu ofera destula documentatie. De aceea de obicei imi place sa imbin c++ cu java sau .net (java de cele mai multe ori). Chestiile care ma deranjeaza cel mai mult sunt : de ce Microsoft a ales directia asta cu managed , de ce a eliminat complet din compiler suportul pt inline asm ,de ce s-a schimbat calling convension-ul de la __stdcall la __fastcall pt win64, etc. Ma rog banuiesc ca nu e cazul sa -mi vars nemultumirile pe aici. Inca o chestie de ce s-au introdus restrictiile idioate din Vista care mie mi se par un nightmare si de ce au stat 15 ani ca sa scoata un gunoi de sistem de operare care cica e revolutionar.Mi se pare frustrant sa imi trebuiasca jdemii de MB de RAM ca sa rulez un OS la fel ca XP dar cu alta palarie. SI de ce asta? Integrare cu .NET,protectii peste protectii si alte kkt-uri care in final oricum pot fi crackuite,dar ma rog e microsoft. Revenind la limbajul de programare cred ca asm/c++ nu o sa moara efectiv nu ai cu ce altceva sa programezi low level.  B)

#6
madlex

madlex

    Active Member

  • Grup: Senior Members
  • Posts: 1,270
  • Înscris: 11.07.2003

Quote

de ce s-a schimbat calling convension-ul de la __stdcall la __fastcall pt win64
Who told you that?  :boredlook:

#7
LowKick

LowKick

    Member

  • Grup: Members
  • Posts: 308
  • Înscris: 18.05.2007

View Postmadlex, on May 21 2008, 17:56, said:

Who told you that?  :boredlook:
Two important modifications from x86 to x64 are the 64-bit addressing capability and a flat set of 16 64-bit registers for general use. Given the expanded register set, x64 just uses the __fastcall calling convention and a RISC-based exception-handling model. The __fastcall model uses registers for the first four arguments and the stack frame to pass the other parameters.

http://msdn.microsof...y/ms235286.aspx

#8
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,598
  • Înscris: 30.07.2003

View PostLowKick, on May 14 2008, 11:45, said:

Pe de alta parte la capitolul web applications, c++ e cam slabutz chiar rau de tot. Nu mi se pare o solutie sa fac module de apache sau ISAPI filters sau alte tampenii de genul asta care sunt ineficiente si greu de mentinut.
Dupa cum bine stii C/C++ e limbaj de programare, nu...
O tehnologie bazata pe modulele Apache sau ISAPI e FastCGI care abstractizeaza mult, practic tu scrii o aplicatie consola si tot ce trimiti output-ului va ajunge la browser. Nu e CGI, fiindca rezida in memorie, nu se termina procesul ci asteapta noi cereri.

View PostLowKick, on May 14 2008, 11:45, said:

De asemenea multe framework-uri independente de platforma nu sunt destul de mature pt production si/sau nu ofera destula documentatie.
Sunt si multe pocnitori dar sunt si altele de calitate (QT sau wxWidgets).

View PostLowKick, on May 14 2008, 11:45, said:

de ce Microsoft a ales directia asta cu managed
Pentru ca C/C++ nu a fost inventat de ei... de asta cele mai multe tehnologii de la ei via acest limbaj te fac sa te gandesti daca cei de acolo stiau de abstractizare/incapsulare ! Sigur ca stiau dar au folosit-o din plin in VB clasic si .NET !

#9
pytter

pytter

    New Member

  • Grup: Members
  • Posts: 3
  • Înscris: 12.08.2008
are cineva sami dea si mie un site de unde pot lua c++

#10
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,598
  • Înscris: 30.07.2003

View Postpytter, on Sep 29 2008, 11:58, said:

are cineva sami dea si mie un site de unde pot lua c++
http://www.microsoft.com/express/vc/
http://www.codeblocks.org/downloads

Edited by neagu_laurentiu, 29 September 2008 - 11:41.


#11
DeagleMishu

DeagleMishu

    New Member

  • Grup: Members
  • Posts: 9
  • Înscris: 29.04.2007

View Postmadlex, on Apr 27 2008, 01:49, said:

Incep eu :)

Ce IDE-uri folositi, care va place cel mai mult si de ce?

Cristos a Inviat si Paste Fericit pentru toti.

Eclipseeee.. pot sa il folosesc pentru absolut orice limbaj de programare si nu trebuie sa rulez 1000 de programe pentru ca sa editez/compilez/lucrez remote etc..

#12
madlex

madlex

    Active Member

  • Grup: Senior Members
  • Posts: 1,270
  • Înscris: 11.07.2003
Si Notepad poti sa il folosesti pentru orice limbaj de programare..

#13
Love4Boobies

Love4Boobies

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 09.12.2008
Asadar, sa le luam pe rand...

View PostLowKick, on May 14 2008, 11:45, said:

Chestiile care ma deranjeaza cel mai mult sunt : de ce Microsoft a ales directia asta cu managed , de ce a eliminat complet din compiler suportul pt inline asm ,

Pentru ca pentru un compilator de aplicatii ce ruleaza sub mediul Windows, asamblarea e considerata nesigura. Limbajele precum Java si C# au fost inventate tocmai pentru a ne scapa de anumite concepte cum ar fi pointerii, astfel scapand multe aplicatii de diverse erori. Cu timpul, limbajele high-level vor fi folosite pentru aplicatii, iar cele low si middle-level pentru driveri si sisteme de operare, asa cum ar trebui. Managed code is the s*it, desi e mai lent. La urma urmei, si C e mai lent decat asamblarea, nu!?! Ia-o in felul urmator: daca byte code-ul (e.g. CIL) produs de un compilator (e.g. C#) ofera prin design anumte proprietati de siguranta, 1) aplicatia e mai sigura, 2) sistemul de operare poate fi facut mai sigur (vezi Singularity). Ah, inca ceva... Am citit un comentariu cu C/C++ care nu e facut de Microsoft, motiv pt care au ales calea managed. Cine a scris asta, a facut un comentariu redundant...

Quote

de ce s-a schimbat calling convension-ul de la __stdcall la __fastcall pt win64, etc.

Pentru e mult mai eficient sa ai parametrii in registre atunci cand ai loc decat sa ii pui pe stiva si sa ii scoti apoi. Nu uita ca viteza memoriei e complet patetica comparativ cu cea a registrelor, avand in vedere ca ele sunt aflate fizic in procesor. Nici cache-ul nu e o solutie cu mult mai buna.

Quote

Revenind la limbajul de programare cred ca asm/c++ nu o sa moara efectiv nu ai cu ce altceva sa programezi low level.  B)

C++ nu e low-level, ci middle-level spre high-level. Probabil te referi la C.

Cheers,
Bogdan

Edited by Love4Boobies, 09 December 2008 - 06:39.


#14
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,598
  • Înscris: 30.07.2003

View PostLove4Boobies, on Dec 9 2008, 06:33, said:

...
Parerea mea e ca iti plac povestile din MSDN...
Astept ziua cand MS va veni cu Windows-ul sau tot ce produc ei sub CIL iar la instalare ngen va genera un .exe optimizat pentru masina mea... in GAC.

Deocamdata constat ca JIT-ul nu a auzit de toate optimizarile suportate de procesor:
C/C++
void xxx(_int64 n, _int64 m)
{
	double t = 0.0;
	for (__int64 j = 0; j < n; j++)
	{
	   t /= 1000.0;
	   for (__int64 i = 0; i < m; i++)
		{
		   t += i / 999999.0;
		   double d = t * t + i;
		   double r = (t + d) / (200000.0 * (i + 1));
		   t -= r;
		}
	}
	printf("%e\n",t);
}

int main(int argc, char* argv[])
{
	__time64_t t1,t2;
	_int64 n = _atoi64(argv[1]);
	_int64 m = _atoi64(argv[2]);

   _time64(&t1);
   xxx(n,m);
   _time64(&t2);
   printf("%d s\n",t2-t1);

   return 0;
}

C#
class Program
{
		public static void xxx(Int64 n, Int64 m)
		{
			double t = 0.0;

			for (Int64 j = 0; j < n; j++)
			{
				t /= 1000.0;

				for (Int64 i = 0; i < m; i++)
				{
					t += i / 999999.0;
					double d = t * t + i;
					double r = (t + d) / (200000.0 * (i + 1));
					t -= r;
				}
			}
			Console.WriteLine(t);
		}

		static void Main(string[] args)
		{
			DateTime t1, t2;
			Int64 n = Convert.ToInt64(args[0]);
			Int64 m = Convert.ToInt64(args[1]);
			t1 = DateTime.Now;
			xxx(n,m);
			t2 = DateTime.Now;
			System.Console.WriteLine("{0}", (t2 - t1).ToString());

			// reapelam ca sa excludem timpul pierdut de JIT pentru compilare nativa
			t1 = DateTime.Now;
			xxx(n,m);
			t2 = DateTime.Now;
			System.Console.WriteLine("{0}", (t2 - t1).ToString());
		}
}

Java
public class t
{
	public static void xxx(long n, long m)
	{
		double t = 0.0;
		for (long j = 0; j < n; j++)
		{
			t /= 1000.0;
			for (long i = 0; i < m; i++)
			{
				t += i / 999999.0;
				double d = t * t + i;
				double r = (t + d) / (200000.0 * (i + 1));
				t -= r;
			}
		}
		System.out.println(t);
	}

	public static void main(String[] args)
	{
		long t1, t2;
		long n = Long.parseLong(args[0]);
		long m = Long.parseLong(args[1]);
		t1 = System.currentTimeMillis();
		xxx(n,m);
		t2 = System.currentTimeMillis();
		System.out.printf("%d\n", (t2 - t1)/1000);

		t1 = System.currentTimeMillis();
		xxx(n,m);
		t2 = System.currentTimeMillis();
		System.out.printf("%d\n", (t2 - t1)/1000);
	}
}

Dupa compilare in release plus toate optimizarile, calculatorul meu la un apel .exe 5 100000000 finalizeaza operatiunea:
- .NET 71s
- Mono 67s (!)
- Java 61s (optiunea -client)
- Java 55s (optiunea -server)
- VC++ 23s

Si tocmai anumite concepte cum ar fi pointerii ajuta la optimizari...
Vreti si exemple de management automat de memorie... eficient ?

Edited by neagu_laurentiu, 09 December 2008 - 07:47.


#15
msmihai

msmihai

    Senior Member

  • Grup: Senior Members
  • Posts: 5,271
  • Înscris: 02.09.2006
no comment ... bravo neagu laurentiu  :first:

#16
Love4Boobies

Love4Boobies

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 09.12.2008

View Postneagu_laurentiu, on Dec 9 2008, 07:43, said:

Parerea mea e ca iti plac povestile din MSDN...
Astept ziua cand MS va veni cu Windows-ul sau tot ce produc ei sub CIL iar la instalare ngen va genera un .exe optimizat pentru masina mea... in GAC.

Daca lucrurile merg asa cum trebuie, nu vei avea nevoie de un PE, ci pur si simplu un un compilator gen Bartok.

Quote

Si tocmai anumite concepte cum ar fi pointerii ajuta la optimizari...

Nu am spus ca C# este mai rapid. Tocmai asta incercam sa zic: C este mai lent decat asamblarea, precum si C# este mai lent decat C. Vrei sa te apuci sa scrii o intreaga aplicatie in limbaj de asamblare doar pentru ca e mai rapid? I doubt it. Asta e evolutia... Odata cu cresterea puterii de calcul, avem optiunea de a face aplicatiile mai sigure, ceea ce a devenit o prioritate mai mare in ziua de azi. Citeste mai atent ce am scris.

Tin sa precizez ca byte code-ul produs de C# este cu mult superior celui produs de Java intr-ale sigurantei. Java intr-adevar este mai portabil.

Cheers,
Bogdan

Edited by Love4Boobies, 09 December 2008 - 14:37.


#17
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,598
  • Înscris: 30.07.2003

View PostLove4Boobies, on Dec 9 2008, 14:37, said:

un compilator gen Bartok.
Stiu de miscarile ce se pregatesc la MS insa sunt sceptic.

View PostLove4Boobies, on Dec 9 2008, 14:37, said:

C este mai lent decat asamblarea, precum si C# este mai lent decat C.
Teoretic ai dreptate. Dar diferenta dintre C# & C e muuullt mai mare decat intre C & asm ! In cazul .asm-ului pierderea e neglijabila iar nivelul inalt al limbajului C (in comparatie cu asm) aduce mai mult imbunatatiri decat pierderi ori in cazul lui C# cred ca lucrurile stau invers. Nu amesteca framework-ul puternic prin multitudinea de clase puse la dispozitie cu tehnologia JIT/CIL. Acele multe clase puteau fi implementate si in C++ foarte bine numai ca motivele nu tin de domeniul tehnic ci al marketingului sau al orgoliilor MS.

View PostLove4Boobies, on Dec 9 2008, 14:37, said:

Odata cu cresterea puterii de calcul, avem optiunea de a face aplicatiile mai sigure
Nu intelg asta cu aplicatii mai sigure ! Pai nu e rolul OS-ul sa aiba grija de siguranta ? De cand un layer peste OS are grija de asta ?
Da-mi exemple de chestii sigure in managed. Marketing citesc si eu din MSDN dar vreau ceva concret !

LE: sa nu facem flame si sa ne limitam la discutii argumentate chiar daca contradictorii !

Edited by neagu_laurentiu, 09 December 2008 - 16:20.


#18
Love4Boobies

Love4Boobies

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 09.12.2008

View Postneagu_laurentiu, on Dec 9 2008, 16:11, said:

Teoretic ai dreptate. Dar diferenta dintre C# & C e muuullt mai mare decat intre C & asm ! In cazul .asm-ului pierderea e neglijabila iar nivelul inalt al limbajului C (in comparatie cu asm) aduce mai mult imbunatatiri decat pierderi ori in cazul lui C# cred ca lucrurile stau invers. Nu amesteca framework-ul puternic prin multitudinea de clase puse la dispozitie cu tehnologia JIT/CIL. Acele multe clase puteau fi implementate si in C++ foarte bine numai ca motivele nu tin de domeniul tehnic ci al marketingului sau al orgoliilor MS.

Clasele sunt puse la dispozitie de platforma .NET, nu de CIL/JIT. CIL este codul binar (care nu este acelasi cu al procesorului - de ex. nu e cod nativ x86). CIL aduce atat portabilitate (trebuie un compilator Bartok pentru fiecare procesor dar codul pe care il cumperi din magazin poate fi acelasi pentru toate sistemele de operare) cat si siguranta pentru ca e managed. E managed pentru ca C# e type-safe. Fiind type-safe, poate sa ne scape de anumite erori in aplicatii, specifice pointerilor. Un exemplu este buffer overrun-ul.

Quote

Nu intelg asta cu aplicatii mai sigure ! Pai nu e rolul OS-ul sa aiba grija de siguranta ? De cand un layer peste OS are grija de asta ?
Da-mi exemple de chestii sigure in managed. Marketing citesc si eu din MSDN dar vreau ceva concret !

Intamplator, eu sunt un system developer. Lucrez la propriul meu sistem de operare, pe nume Simplexity. Una din chestiile sigure managed ar fi chiar un sistem de operare managed (vezi Singularity). Cealalta jumatate a intrebarii e raspunsa mai sus... :)

Quote

LE: sa nu facem flame si sa ne limitam la discutii argumentate chiar daca contradictorii !

Stai linistit, nu imi plac flame-urile nici mie :D

Cheers,
Bogdan

Edited by Love4Boobies, 09 December 2008 - 17:01.


Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate