рдореИрдВрдиреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдХрд╣рд╛рдиреА

рд╣рд╛рдп рд╣рдорд░! рдореЗрд░рд╛ рдирд╛рдо рдЗрд▓реНрджрд╛рд░ рд╣реИред рдореИрдВ 29 рд╕рд╛рд▓ рдХрд╛ рд╣реВрдВред рдореИрдВ 2003 рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдкрдиреЗ рдЬреАрд╡рди рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ 4 рд░реВрдкрд░реЗрдЦрд╛рдПрдБ рдФрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдмрдирд╛рдИред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛, рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдЬреЛ рдореБрдЭреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ BAYRELL рд▓реИрдВрдЧреНрд╡реЗрдЬ рдбреЗрд╡рд▓рдк рдХрд░рддреЗ рд╕рдордп рдорд┐рд▓реАред рдореИрдВ рдкрд╛рда рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрдиреЛрдВ рдФрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреА рдХрдореА рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБред


рд╕реГрд╖реНрдЯрд┐ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕


рдореИрдВрдиреЗ 2016 рдХреА рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ BAYRELL рднрд╛рд╖рд╛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рддрдм рдореБрдЭреЗ рдХреЛрдгреАрдп рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рд╕рдлрд▓ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рддрдм PHP рдореЗрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЯрд┐рд╡рд┐рдЧ рдХреЛ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдФрд░ рдореИрдВ рдХреЛрдгреАрдп рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдХрд┐ рдЖрдк рдХреЛрдгреАрдп рдХреЛ рдЯреНрд╡рд┐рдЧ рдХреИрд╕реЗ рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВред


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЯреНрд╡рд┐рдЧ + рдХреЛрдгреАрдп рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рдорд┐рд╖ рдкреНрд░рднрд╛рд╡ рдерд╛ред рдкреГрд╖реНрда рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдЯреНрд╡рд┐рдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреЛрдгреАрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдкреЗрдЬ, рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдмреНрд▓рд┐рдВрдХ рд╣реЛ рдЧрдпрд╛ред рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдХреНрдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЬреЛ PHP рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЦреЛрдЬ рдХреА, рд╕рднреА рдиреЗ рд╕рд░реНрд╡рд░ рдореЗрдВ NodeJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА, рдпрд╛ PHP рдореЗрдВ V8 рдЗрдВрдЬрди, рдпрд╛ рдПрдХ рдорд╛рдЗрдХреНрд░реЛ рд╕рд░реНрд╡рд┐рд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░: PHP рдореЗрдВ рдмреИрдХрдПрдВрдб, NodeJS рдореЗрдВ рдлреНрд░рдВрдЯреЗрдВрдбред рдХреЗрд╡рд▓ рдпрд╣рд╛рдБ рджреБрд░реНрднрд╛рдЧреНрдп рд╣реИред рдореИрдВрдиреЗ рд╡рд░реНрдбрдкреНрд░реЗрд╕, Yii2 рдкрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯреЗрдВ рдмрдирд╛рдИрдВред рдФрд░ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░, NodeJS рдпрд╛ V8 рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдерд╛ред рдлрд┐рд░ рдПрдХ рдХреНрд░реЙрд╕-рд▓реИрдВрдЧреНрд╡реЗрдЬ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ред


рдореИрдВрдиреЗ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред PHP рдореЗрдВ рдПрдХ рдорд╣реАрдиреЗ рдореЗрдВ рд▓рд┐рдЦрд╛, рдлрд┐рд░ рджреВрд╕рд░реЗ рдорд╣реАрдиреЗ рдореЗрдВ JS рдореЗрдВ рд▓рд┐рдЦрд╛ред рдФрд░ рдЙрд╕рдиреЗ рдЬрд▓реНрджреА рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред рдпрджрд┐ рдХреЛрдИ рдмрдЧ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рддреЛ рдЙрд╕реЗ рд╡рд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рджреЛрдиреЛрдВ рдЬрдЧрд╣ рддрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмрд╣реБрдд рдЬрд▓реНрджреА, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рдЧрдП, рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЧрдПред рдореБрдЭреЗ рдкрд╛рдпрдерди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереАред рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдлрд┐рд░ рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ред рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЕрдиреБрд╡рд╛рджрдХ рдХреЛ рдЦреЛрдЬреЗрдВ, рдФрд░ рдЬреЗрдПрд╕ рдФрд░ рдкрд╛рдпрдерди рдореЗрдВ PHP рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред


PHP to JS. . . PHP JS. , PHP JS . JS , PHP . JS console.log, PHP var_dump. Runtime , . , , , .


. , . TypeScript, CoffeeScript, Dart, Babel, JavaScript. , , JS, PHP, Python ..


BAYRELL Language.


, . 0.3 2018 . . , , .


, . , JS . 0.8.3.



  • BAYRELL Language PHP, NodeJS, JavaScript;
  • HTML ;
  • ;
  • api;
  • ;
  • ;
  • ;
  • (pipe);
  • async/await;
  • , memorize;
  • ;
  • ;

.


BAYRELL Language Runtime , Full Stack . , API, .



, . , .


:


npm install -g bayrell-lang-compiler

:


git clone https://github.com/bayrell-tutorials/clear-project
cd clear-project
git submodule init
git submodule update

:


bayrell-lang-nodejs make_all
bayrell-lang-nodejs make_symlinks

:


bayrell-lang-nodejs watch

, nginx document root web .


:




HTML


:


  • PHP JS.
  • .
  • Direct HTML DOM Virtual DOM.

, .


, LayoutModel, ( ). тАУ . render, HTML . JS ( , ..) . , , , . , , RenderDriver.


RenderDriver LayoutModel, requestAnimationFrame. render , HTML DOM. render VirtualDOM, HTML.



(). , , . , , . , , Lisp, Haskell, F#, , , .


. , , , , Dependency injection, , . , . .


, , (), private , setName(), getName(). . . .


, . , . , .


, , .



BAYRELL Language. .


тАУ , (). . , . , , . , , , , . . , .


тАУ . , . , . , .


: , memcached .. 12 .


, . ? , . - , . . , , , , , , , , , .. , , ┬л┬╗ .


. , , , . , , , , . . . . , .


, . тАУ , . , , .


:


  • , , . , , .
  • , , - , , . .
  • , , . . .

, . , , , , () .


, .


тАУ :


  • , .
  • .
  • , .
  • .
  • .

, . , , . HTML , , .


тАУ . тАУ , . , . . .


BAYRELL Language:


/**
 * Sum a + b
 */
lambda int sum(int a) => int (int b) use (a) => a + b;

:


fn sum = int (int a) => int (int b) use (a) => a + b;

map, reduce, array_filter (php), pipe.


, pipe. , . pipe Linux .


:


ls -la | grep .txt

pipe. txt. , , , txt.


BAYRELL Language pipe. :


User user = new User()
	|> User::setName('John')
	|> User::addEmail("john@example.com")
;

:


User user = new User()
	-> setName('John') 
	-> addEmail("john@example.com")
;

, addEmail, , , email ┬лjohn@example.com┬╗ . , , . .


Pipe .


.


. FaaS тАУ .



BAYRELL Language Frontend: JavaScript, , . Ajax Backend.


:


MessageRPC msg = await @->sendMessage
(
	new MessageRPC
	{
		"api_name": "App",
		"space_name": "ApiInterface",
		"method_name": "getDocument",
		"data":
		{
			"document": "/ru/" ~ prefix,
		},
	}
);
Document document = msg->isSuccess() ? msg.response : null;

, REST Api . REST CRUD. , , , , - , , . HTTP (GET,POST,PUT,DELETE) .


, , D-BUS . , . , .


. , CRUDInterface. , , , . API.


, : WebSocket, DBus, RabbitMQ. Ajax API.



, , ++, C#, Python, Java, PHP . , , .


, :


  • . . 4 , , .
  • , .
  • , . .
  • , ?
  • , .

, , . . .


BAYRELL Language


, , (Java, Python, C#, C++, NodeJS, JavaScript, Go, Lua). . BAYRELL Language, . , , . , . - .


, . Language Binding. dll, . , , .


, , , .


, FaaS .


. , . . , , . , . , , . . Git.


. , , 2-3 . , , , .


TODO List



, , - , .


.


, .


.


All Articles