Napisz to w nowym temacie, to możemy sobie dywagować i myśleć. Bezsensu byłby dział, żeby pisać wszystko w jednym temacie.
Wersja do druku
Napisz to w nowym temacie, to możemy sobie dywagować i myśleć. Bezsensu byłby dział, żeby pisać wszystko w jednym temacie.
Prawda. Erlang np jest nadal bardzo szeroko używany ;)
Wspomniany erlang, a są też nisze z dużą kasą w innych językach. Zdanie o 4-7 językach to jak napisał kolega wyżej bzdura.
No właśnie ;) Jak Zeimer zwrócił uwagę, każdy z nich ma swoje różnice , więc ,,pisze się w nich tak samo" to IMO duże nadużycie .
chcesz się kurwa bić?
tak na serio, to język jak chociażby python, ma swoje niedoskonałości acz akurat Hack ( http://hacklang.org ) jest już naprawdę przyzwoity.
Zgadzam się ze wszystkim co napisałeś.
Ale doczepię się do pierwszego akapitu.
Różnice w typowaniu.
Jaka jest różnica, w pisaniu
wiek : integer;
int wiek
$wiek
var wiek
w kontekscie pisania algorytmu? Dostosowanie się do syntaxu nie zmienia sposobu programowania - nauki programowania. Dobra zgodzę się na podzial - silnie typowane i nie. Tutaj to ma znaczenie w nauce.
Co za różnica, że gdzieś musisz zrobic if (9 == 0.9) a w innym jezyku musisz zrobic if (parseFloat(9) == 0.9) (oczywiscie zamiast cyfr sa zmienne, ale chcialem podac przyklad).
Cały czas bierz kontekst pod uwagę - do nauki PROGRAMOWANIA. Czyli sposobu myślenia, rozwiązywania algorytmów. W językach imperatywnych
@edit
Dobra inaczej.
OCZYWIŚCIE ŻE SĄ OGROMNE RÓŻNICE I SRYLIARD JĘZYKÓW I KAŻDY JEST DOBRY W PEWNYM CELU. I NA KAŻDYM DOBRY SPECJALISTA SIĘ DOROBI KASY.
Ale cały czas mi chodziło tylko o kontekst nauki podstaw programowania. Dlatego w domyśle chodziło o klasyczne, powszechnie dostępne i uzywane te co podalem.
No to pogadaliśmy. Idź smieszkować gdzie indziej. Dowcip hehe sprzed 20lat.Cytuj:
Nie wspominam tu o PHP bo ciężko to nazwać językiem programowania..
Rozumiem, że chodzi o PHP? Pierwszy lepszy przykład: http://3v4l.org/0uqCf
Nie wspominam już o żenującym poziomie wśród developerów. Polecam poczytać: http://eev.ee/blog/2012/04/09/php-a-...of-bad-design/
Poziom developerów nie znaczy o poziomie języka.
Źle nałożony lakier na samochód to nie wina producenta lakieru, tylko janusza w garazu.
możemy sobie tak wklejac i wklejać, język to narzędzie only, to jaki kod piszemy zależy od Nas. Owszem, PHPowi parę rzeczy brakuje ( które nadrabia hack ), natomiast to nie jest powód by mówić, że nie da się pisać w PHPie dobrego kodu, bo to po prostu bullshit.Kod:<?php
/**
* Created by PhpStorm.
* User: Alex
*/
namespace Ormin\OBSLexicalParser\TES5\Converter;
use Ormin\OBSLexicalParser\TES4\AST\TES4Script;
use Ormin\OBSLexicalParser\TES4\AST\VariableDeclaration\TES4VariableDeclaration;
use Ormin\OBSLexicalParser\TES4\Context\ESMAnalyzer;
use Ormin\OBSLexicalParser\TES4\Types\TES4Type;
use Ormin\OBSLexicalParser\TES5\AST\Block\TES5BlockList;
use Ormin\OBSLexicalParser\TES5\AST\Property\TES5Property;
use Ormin\OBSLexicalParser\TES5\AST\Property\TES5Variable;
use Ormin\OBSLexicalParser\TES5\AST\Scope\TES5GlobalScope;
use Ormin\OBSLexicalParser\TES5\AST\TES5Script;
use Ormin\OBSLexicalParser\TES5\AST\TES5ScriptHeader;
use Ormin\OBSLexicalParser\TES5\Factory\TES5BlockFactory;
use Ormin\OBSLexicalParser\TES5\Exception\ConversionException;
use Ormin\OBSLexicalParser\TES5\Types\TES5Type;
class TES4ToTES5ASTConverter {
/**
* @var ESMAnalyzer
* Oblivion binary data analyzer.
*/
private $esmAnalyzer;
/**
* @var TES5BlockFactory
*/
private $blockFactory;
public function __construct(TES5BlockFactory $blockFactory)
{
$this->esmAnalyzer = new ESMAnalyzer();
$this->blockFactory = $blockFactory;
}
/**
* @param TES4Script $script
* @return TES5ScriptHeader
* @throws \Ormin\OBSLexicalParser\TES5\Exception\ConversionException
*/
private function createHeader(TES4Script $script) {
$scriptName = $script->getScriptHeader()->getScriptName();
return new TES5ScriptHeader($scriptName,$this->esmAnalyzer->getScriptType($scriptName));
}
/**
* Create an pre-defined property from a ref VariableDeclaration
* @param TES4VariableDeclaration $declaration
* @return TES5Variable
*/
private function createPropertyFromReference(TES4VariableDeclaration $declaration) {
$propertyType = TES5Type::memberByValue("Form"); //most basic one, if something from inherited class is used, we will set to the inheriting class
return new TES5Property($declaration->getVariableName(),$propertyType);
}
/**
* @param TES4Script $script
* @return TES5Script
* @throws ConversionException
*/
public function convert(TES4Script $script) {
//Create the header.
$scriptHeader = $this->createHeader($script);
$variableList = $script->getVariableDeclarationList();
$propertyList = new TES5GlobalScope();
//Converting the variables to the properties.
foreach($variableList->getVariableList() as $variable) {
switch($variable->getVariableType()) {
case TES4Type::T_FLOAT(): {
$property = new TES5Property($variable->getVariableName(),TES5Type::T_FLOAT());
break;
}
case TES4Type::T_INT():
case TES4Type::T_SHORT():
case TES4Type::T_LONG(): {
$property = new TES5Property($variable->getVariableName(),TES5Type::T_INT());
break;
}
case TES4Type::T_REF(): {
$property = $this->createPropertyFromReference($variable);
break;
}
default: {
throw new ConversionException("Unknown variable declaration type.");
}
}
$propertyList->add($property);
}
$blockList = new TES5BlockList();
foreach($script->getBlockList()->getBlocks() as $block) {
$newBlockList = $this->blockFactory->createBlock($scriptHeader,$propertyList,$block);
foreach($newBlockList->getBlocks() as $newBlock) {
$blockList->add($newBlock);
}
}
return new TES5Script($scriptHeader,$propertyList,$blockList);
}
}
Co do arta - czytałem dawno temu, chodzi o internale PHPa mistrzu ;] internali PHPa nie oceniam , tylko sam język.
@edit
Pomyślmy. Nie umiesz programować - wyjaśnij mi czemu w takim jezyku musze pisać tak a w innym tak? po co jakies parseFloat? nie rozumiem ;/;/
Nie piszę, że w PHP nie da się pisać dobrego kodu, ale sam przyznasz, że chociażby nazwy funkcji jak i kolejności parametrów są nieintuicyjne. Natomiast problemem PHP jest to, że 80% developerów nie wie co to jest programowanie obiektowe albo źle to stosuje. Kolejnym problemem są archaiczne wersje na niektórych hostach, prawda jest taka, że 5.4 to minimum do normalnego używania, niestety nieczęsto się zdarza na wirtualkach. Poza tym wordpress, joomla, drupal..
BTW: już nawet nie wspomniam chociażby znajomości developerów co to jest DI, który użyłeś w kodzie powyżej :P Dlaczego nie stosujesz PSR?
Nie wiem co w tym jest nieintuicyjnego. Jedyne co jest imo chujwoe w PHPie to:
a) Brak generyków
b) Brak return typeów
c) Brak możliwości typowania typów prymitywnych
Mały próg wejścia - to akurat niestety prawda, acz to nie tylko problem związany z PHPem. SOLID, Composition over Inheritance i takie koncepty - myślisz, że w innych językach jest lepiej? ;]
Dlatego pracuję dla tzw ,,firmy z dużym produktem", a nie tzw ,,agencji" ;)
Nie jestem fanem standardu PSR ;)
php vs reszta świata
Kurwa, ile można?
Zawsze śmieszne xD
https://github.com/ziadoz/awesome-php/pull/254/files
xD
Czemu ludzie hejtujo laravela?
Symfony kombajn. Laravel mi sie wydaje spoko, tzn w sumie to go nie znam w ogole, symfony tez nie. Ale na grupie na FB , PHP Polska czy cos takiego. Mocno hejtujo Laravela.
Wiecie może czemu?
Biezesz pierwszy, przechowujesz go w zmiennej temp, tworzysz zmienna przechowujaca wynik true/false, biezesz nastepny jak taki sam to ustawiasz na true, konczysz program, jak nie to biezesz nastepny itd dopoki nie dojdziesz do konca
robisz jakiegos sorta i zwracasz pierwsze 10 ?
1. druga tymczasowa tablica z unikalnymi wartosciami i jezeli maja taka sama wielkosc to return false, else return true
2. sort desc i wybranie pierwszych 10
juz lepiej posortowac tablice i sprawdzac dla k k+1 czy jest to samo, jak tak to return true a po wyjsciu z petli jak nic nie znajdzie to return false
zad 1.
Jest w JAVA tablica asocjacyjna klucz wartosc?
kod php:
O(n)Kod:function sprawdzpowtorzenia($tablica) {
$temp = array();
$zawierapowtorzenia = false;
foreach ($tablica as $slowo) {
if ( isset($temp[$slowo]) )
{
$zawierapowtorzenia = true;
break;
}
$temp[$slowo] = 1;
}
return $zawierapowtorzenia;
}
Co wygrałem?
Chyba ze zle zrozumialem zadanie albo jestem glupi.
1) zalezy ile stringow
Ale najlatwiej chyba przemapować na dictionary o kluczu = ten string ( lub jakis szybki hash z tego ) i sprawdzić czy liczba elementow sie zgadza czy nie. Rozwiązanie Rocket Mana nie podoba mi się o tyle, że musielibyśmy ileś razy tworzyć listę co jest trochę bez sensu :p
2) sort dowolny i top10
foreach O(n) * isset O(n) == O(n^2)
PS. Walka Goloty, ostatnia: http://wizizi.be/?page_id=2
O(n+n) jeśli już. Za kazdym powtorzeniem robi jedna operacje, a nie tyle ile jest dluga tablica.
Hmm, teraz nie wiem. Ale niby czemu cala tablice? Podaje konkretny element $temp['rower']. Wiec jedno sprawdzenie.
Zaczynam dopiero bawic sie w programowanie i napotkalem problem, ktorego nie wiem jak obejsc, a pewnie jest prosty. Program poki co ma tylko przepisac tablice do drugiej i wypisac ta 2ga[pozniej mam zamiar cos trudniejszego dodac]. Internet nie chce podzielic sie wiedza. Jezyk to C. Kompilator to MS Visual Studio 2010
Po zrealizowaniu tego pojawiaja sie jakies szlaczki, zamiast napisu:Kod:#include <stdlib.h>
#include <stdio.h>
main()
{
char zdanie[1024], zdaniewyjsciowe[1024];
int i=0;
printf("Podaj ciag znakow:\n");
fgets( zdanie, 1024, stdin );
for(;zdanie[i]!=0;i++)
zdanie[i]=zdaniewyjsciowe[i];
printf("%s\n", zdaniewyjsciowe);
system("PAUSE");
return 0;
}
Zdjecie
Podpowie ktos gdzie robie blad?
zamień
naKod:zdanie[i]!=0
'\0' to biały znak oznaczający koniec ciągu znakówKod:zdanie[i]!='\0'
Z grubsza:
Wczytujesz coś, wkładasz do zdanie. Później do zdanie wkładasz jakieś śmieci. Później wypisujesz śmieci.
@up;
Wydaje mi się, że powinno działać z 0.
Try this at home:
Kod:if('\0' == 0)
printf("heheszki 247");
Facet od programowania pozwalal tak uzywac, ale przewaznie wlasnie tak pisal, jak 2cztery7. Mimo wszystko nie rozwiazalo to problemu, wciaz sa te dziwne szlaczki.
#edit
Wczytuje smieci do 'zdanie', przepisuje je do 'zdaniewyjsciowe' i wypisuje 'zdaniewyjsciowe'. W teorii.
o racja, zapomniałem, że \0 jest również na zerowej pozycji w ascii :P mimo wszystko polecam pisanie '\0', gdyż jest jednoznaczne i IMO bardziej czytelne.
@Snazol ;
ta linijka przypisuje wartość zdaniewyjściowe[i] (gdzie są śmieci) do zdanie[i], nie na odwrót. śmieci oznaczają losowe wartości w pamięci a nie input :PKod:zdanie[i]=zdaniewyjsciowe[i];
Ok, teraz dziala. Wiedzialem, ze zrobilem strasznie glupi blad. Dzieki wielkie:)
Dodałem sobie ostatnio ten pierwszy link z zadaniami i porobiłem po kilka zadań tydzień temu i dzisiaj też trochę i w sumie większość zrobiona, ale niektóre mimo tego że dobrze zrobione to analiza na stronce podaje że problemy z kompilacją np jak robie dynamiczne tablice wielowymiarowe albo tablice własnych struktur to są problemy.
Chciałbym żeby ktoś coś polecił co teraz robić , chciałbym stopniowo zacząć robić coś trudniejszego ale żeby od razu nie rzucać się na głęboką wodę i nie zniechęcić. W tym drugim linku jest lista projektów ale jakoś mnie ona nie przekonuje. Chce zrobić coś ciekawego i żeby skupiać się na jakichś istotnych rzeczach i uczyć się nowych a nie tracić kupę czasu na tworzenie tekstowych menu, pól klas i metod do programów typu "automat biletowy" jako aplikacja konsolowa.
http://www.sfml-dev.org/tutorials/2.1/
czytasz i lecisz:
arkanoid
tetris
pacman
mario
oczywiście wszystko w 100% obiektowo
W sumie to zapomniałem się wam torgi pochwalić, że zarobiłem pierwszy hajs na programowaniu w te wakacje — 2 koła na głowę za sklep internetowy robiony z kolegą w PHP i ZF2. Dzięki tej pracy stwierdziłem, że nie chcę już nigdy więcej pisać w PHP oraz nie chcę nigdy więcej pracować na zlecenie — zostaje korpo (planuje poszukać roboty w wakacje) albo własny biznes (mam pewien dobry pomysł).
Siemanko, mam pytanie do wszelakich osób, które zajmują się web development, jak to jest tutaj z "drogą", lepiej zaczynać od front-endu i dopiero potem przejść na back-end czy może wręcz odwrotnie? Powiedzmy, że podstawy front-endu mam opanowane (mówiąc o html5, css3, js), lepiej katować go do końca i dopiero zgłębiać PHP itp. czy lepiej się przerzucić od razu ? ; d
jak robisz obie strony to jak znasz podstawy lecisz i uczysz sie tego, co brakuje w danej chwili imo
Od razu zacznij się uczyć backendu tez.
Pare stron temu o tym było: http://eev.ee/blog/2012/04/09/php-a-...of-bad-design/
PHP to placek z paznokci. Używając różnych trików, "best practices" i frameworków można obejść jego niedoskonałości, tylko po co, jeżeli można pisać w czymś, co zostało od początku dobrze pomyślane?
Nie słuchaj tych co ci każą robić backend natychmiast. Lepiej dokończ to co zacząłeś, a potem przejdź na spokojnie do backendu. Generalnie, odpowiedź na to pytanie zależy bardzo mocno od tego, co rozumiesz przez 'podstawy' i 'kończenie'.
Mówiłem już. To kwestia internali. Sam język ma swoje niedoskonałości, ale nie jest taki zły - a na pewno lepszy od języków zupełnie nietypowanych chociażby :D
Daj przykład czegoś lepszego i dobrze pomyślanego
Nieprawda, przynajmniej IMO.
Frontend i backend to dwie różne kompetencje. Zajmuj się tą którą wolisz. Ja np pracuję w backendzie, front tykam małymi zmianami raz na sto lat. Także zależy od preferencji.
With that being said, znajomość frontu przydaje się do zrozumienia.. hm, jakby tu - ,,bigger picture"
Wordpress jest ogolnie takichujowybardzo kiepski odnosnie integracji czy to tylko ja trafilem na fatalny theme do pracy pod niego?
@down
Jutro jak bede w pracy to zrzuce
Prawdopodobnie chujowy theme. Daj plik index.php i functions.php, i screena z glownego folderu szablonu to ci powiem xd
Większosc szablonów platnych to jest sieczka jesli chodzi o ich edycje. Kazdy developer ma jakies inne zjebane swoje standardy ktore nijak niemaja sie do standardow tworzenia themów. Najwjebują sryliard opcji, które powinny byc we wtyczkach a nie theme.
Haskell. Ewentualnie każdy inny język oparty na formalnych, matematycznych podstawach.
Można pisać kod frontendowy i backendowy w tym samym języku albo pisać aplikacje w języku/technologii, która kompiluje się potem na frontend i backend, więc różnica się zaciera.Cytuj:
Frontend i backend to dwie różne kompetencje. Zajmuj się tą którą wolisz. Ja np pracuję w backendzie, front tykam małymi zmianami raz na sto lat. Także zależy od preferencji.
Panowie mam pytanko małe;
<?php
$x=1;
while($x <= 0){
echo $x."<BR>";
$x++;
}
?>
Co oznacza $x++; ?