Archyvas

Įrašai, pažymėti ‘Php’

C# nori būti panašus į Php :D

2010.04.22 Xamas Komentarų: 5

Taigi, mano MS Visual Studio naujausias Heading’as “Get ready for C# 4.0″. Tai aš ir atsidarau. O atsidaręs matau… :D … matau, kad C# dar improvement’us, kuris Php turi seniausias.

Taigi didžioji C# naujiena ‘dynamic‘ keyword’as, kurio paskirtis nusakyta šia eilute:

“Now you can create dynamic objects and let their types be determined at run time.”

T.y., kad nebereikės aprašinėt kintamųjų tipo, o jų tipas bus nustatytas kompilavimo metu.

Pavyzdys kodo(C#):

dynamic info = new ExpandoObject();
info.a = "Noriu";
info.b = 10;
info.c = 'k';
info.d = 'a';
info.e = 'i';
info.viskaMoku = true;

Pavyzdys kodo Php:
<?php
$a = "Noriu";
$b = 10;
$c = 'k';
$d = 'a';
$e = 'i';
$viska_moku = true;
?>

————-

Antrasis dalykas, apie kurį aš svajojau 100 metų nors vienoje kitoje kalboje. Ir ‘at last’, MS atėjo į protą – tai galimybė deklaruoti default parametrų reikšmes, t.y. tai ką Php turi jau aibę metų:

Kodo pavyzdys(C#):
public static void masina(int ratuSkaicius = 4, bool galiVaziuoti=true) { }
Kvietimai:
autoparkas.masina();
autoparkas.masina(3);

Kodo pavyzdys(PHP):
static function masina($ratu_skaicius = 4, $gali_vaziuoti=true) { }
Kvietimai:
$autoparkas::masina();
$autoparkas::masina(3);

—————–

Manau niekam nebekyla minčių atsakinėjant į klausimą – “What is the best programming language” bei ‘kas nuo ko rippina’ :D .
Beje, galbūt yra nežinojusių, tai pasakysiu - ”pats C# kompiliatorius parašytas su C++”.
Ko man dar trūksta C# kalboje:
1.Neapibrėžiamų tipų metodų, t.y. kad kompiliavimo metu būtų nustatomas koks yra gražinamo atsakymo iš metodo tipas, ir ar išvis jis yra. T.y. tai ką php turi jau 100 metų.
2.By default integruotų labai puikių Php funkcijų, pvz. in_array(), dechex(), hexdec(),decoct(),octdec(). Dabar esu pasidaręs atskirą libą C#, kad šitas dauguma php funkcijų veiktų, bet toks dalykas turėtų būti integruotas C# kalboje pagal nutylėjimą.
3.Build-in variable’ų, t.y. tai ką turi Php:
$petras = “abc“;
$petras_55 = “def“;
$tomas = ${$petras.”_55};
echo $tomas; // def

4.Php funkcijų – print_r(), var_dump().

Trumpai nupasakokime dabartinę situaciją:

Assembler – mov hujAX,dafigznaetkudaQX;
Pascal - is it (NOT)(STILL)(COULD BE) a programming language???
Java – Am I dead? Oh… it’s just a lagggggggg.
C# – my intention is to be a php.
Php – why the hell I’m so perfect and everybody rips me?
Python – “Get set! Ready! Fire in the hole!”
Logo – Left, Left, Right, Right, Right, Towards, Bump! Ouch! :D

—-

Got it? :D

Apie indų programerius dirbančius už 2 baksus per valandą

2009.11.16 Xamas Komentarų: 4

Kadangi turbūt niekam nepaslaptis, kad turiu polinkį į Php, ir visos kitose programavimo kalbose(funkcinėse, objektinėse, skriptinėse) stengiuosi emuliuoti Php galimybes (C++’e nesugebu apsieti be explode();),

tai šiandien negalėjau apsiieiti be dar vienos labai šaunios Php funkcijos – tai print_r();. Jos esmė ta, kad priešingai nei kitų prog. kalbų kurėjai, kurie neturi kažko panašaus į print_r(), print_r nuosekliai išprintina n’tai masyvo, objektų sarašo visus elementus rekursiškai – užtenka paduoti seką į parametrus :) .

Taigi šios idėjos vedamas, susiradau alternatyvą print_r(); bene populiariausiai skriptine kalbai – javascript.

Po to kai programa į downtime’ą keletui minučių pasiuntė visą dedikuotą servą, atsidaręs skripto autoriaus puslapį kažkodėl nenustebau – Bandula Binny Bandulay iš Indijos :) . Nebūtų non-sense’as, jeigu ne faktas – kad šito Binny’io source kodas yra pirmoje pozicijoje Google :D DD.

/**
* Function : dump()
* Arguments: The data - array,hash(associative array),object
*    The level - OPTIONAL
* Returns  : The textual representation of the array.
* This function was inspired by the print_r function of PHP.
* This will accept some data as the argument and return a
* text that will be a more readable version of the
* array/hash/object that is given.
*/
function dump(arr,level) {
 var dumped_text = "";
 if(!level) level = 0;
//The padding given at the beginning of the line.
 var level_padding = "";
 for(var j=0;j<level+1;j++) level_padding += "    ";
if(typeof(arr) == 'object') { //Array/Hashes/Objects
  for(var item in arr) {
   var value = arr[item];
  
   if(typeof(value) == 'object') { //If it is an array,
    dumped_text += level_padding + "'" + item + "' ...\n";
    dumped_text += dump(value,level+1);
   } else {
    dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
   }
  }
 } else { //Stings/Chars/Numbers etc.
  dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
 }
 return dumped_text;
}

Norint užlenkti visą sistemą užteko ją pabandyt :D :

alert(dump(document.getElementById("xc_obj").childNodes));

Moralas tas – jeigu jau dedi sūrsą, kuris gūglėj bus pirmoj pozicijoj, bent jau jį patikrink.

Nes jeigu tokie pat išminčiai būtų rašę kokį TinyMCE, ar PhpExcel, tai beieškodamas klaidų ir užmiršti kam tau to skripto reikėjo, būtų galima…

(dalyje plačiau – įmečiau pilnai gerai veikiantį kodą).

Skaityti toliau

Java, C++, C#, Php, Pascal redaktoriai ir kompiliatoriai

2009.09.12 Xamas Komentarų: 2

Pamaniau, pasidalinsiu mintimis ir atradimais, padarytus per tuos studijų ir iki studijinius metus.

Yra daugybė programavimo kalbų ir daugybė jų redaktorių.

Šiaip dažnai esu gana alergiškas ‘viskas viename’, bei ‘milžiniškos apimties’ programoms. Todėl renkuosi alternatyvas.

Šį kartą skip’insime, terminal’ą, ir Kubuntu, Linux 5 ir pan. pingvinus, nes visgi namuose dirbu XP langais(Windows XP SP2)

Taigi nuosekliai:

Pascal(programavimo kalba nuo kurios mane pykina).

Kompiliatorius: Free Pascal

Redaktorius(Source): Free Pascal (LT versija)

Beje LT versija yra tikrai puikiai paruošta, ir EN varianto tikrai nereikia

Alternatyvos: Senutėlis Turbo Pascal, ir dar keletas nereikšmingų

C/C++ :

Unversitete ir pan. bandys siūlyti visad matyt “Dev C++” programą, kuri mano nuomone po mėnesio darbo ja, yra tikras nieko vertas šlamštas. Ja nebent ‘makefile’ patogiau pasiredaguoti, t.y. dalyką kuris taip pat yra atgyvena(turiu omeny redagavimą pačiam)

Na arba iškart bus siūlomas maksimalizmas – Microsoft Visual Studio. 5 GB instaliuotas gigantas.

Aš asmeniškai pasirinkau: Code::Blocks (CodeBlocks) . Ši programa nėra didelė – užima vos ~100MB, tačiau tikrai yra tas ko bent jau man ir reikia. Ir tvarkinga, ir funkcionalu, ir kur kas geriau/patogiau už “Dev C++”, bei nėra tokia griozdiškai kaip Visual Studio. Be to jos kompiliatorių ir derinimo terpė labai interaktyvi, taip kad galima sakyti jog galima pasirinkti beveik bet ką.

Code::Blocks yra ir kompiliatorius ir puikus redaktorius.

C# (Microsoft’o Java arba ‘užturbintas’ Pascal’is):

Nesu didelis šios kalbos mėgėjas, bet čia be abejonės lyderis yra M$ tools’as “Microsoft Visual Studio”.

Java:

Pagrindiniai įrankiai: NetBeans, JBuilder bei Eclipse. Kol kas labiausiai sužavėjęs yra “NetBeans”, jeigu tiksliau, tai “JDK with NetBeans IDE Java SE bundle” (JDK – Java Developer Kit). Beje JDK įmanoma atsisiųsti tik iš Sun tinklapio :D . Download’as pilnos Java yra ~135MB, o instaliuota ~430MB, kas gal ir nėra labai mažai, bet programa tikrai gana puikiai susitvarko su mano poreikiais.

Php grupė(HTML, CSS, Php, JavaScript,MySQL DB):

Mano mėgstamiausia :) . Redaktorius Php sąsajai be abejonės Notepad++. Gana aiškus lyderis šioje srityje. Nors teoriškai galima būtų užleisti ir kompiliatorių, bet tai nėra prasminga.

Kompiliatorius šiuo atveju yra – serveris kompiuteryje EasyPhp . Turi puikią lietuvybę ir yra labai paprastas naudoti. Tai tarsi patobulintas WAMP atskirų dalių serverio instaliacijos procesas.

 

———

O dabar trumpai:

  • Pascal redaktorius: Free Pascal (LT)
  • Pascal kompiliatorius: Free Pascal (LT)

 

  • C++ redaktorius: CodeBlocks (Code::Blocks)
  • C++ kompiliatorius: CodeBlocks (Code::Blocks)

 

  • Java redaktorius: NetBeans
  • Java kompiliatorius: JKD with NetBeans

 

  • C# redaktorius: Microsoft Visual Studio
  • C# kompiliatorius: Microsoft Visual Studio

 

  • Php redaktorius(+CSS, JavaScript,HTML,MySQL DB): Notepad++
  • Php kompiliatorius: EasyPhp (LT)