{"id":50,"date":"2023-04-23T13:02:40","date_gmt":"2023-04-23T10:02:40","guid":{"rendered":"http:\/\/author"},"modified":"2023-05-04T18:52:04","modified_gmt":"2023-05-04T15:52:04","slug":"the-return-of-the-rich-client","status":"publish","type":"post","link":"https:\/\/coding-academy.org\/blog\/the-return-of-the-rich-client\/","title":{"rendered":"\u05e9\u05d5\u05d1\u05d5 \u05e9\u05dc \u05d4\u05dc\u05e7\u05d5\u05d7 \u05d4\u05e2\u05e9\u05d9\u05e8"},"content":{"rendered":"\n<p>\u05e2\u05d5\u05dc\u05dd \u05d4\u05e4\u05d9\u05ea\u05d5\u05d7 \u05e2\u05d5\u05d1\u05e8 \u05d1\u05e9\u05e0\u05d9\u05dd \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d5\u05ea \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e8\u05d3\u05d9\u05e7\u05dc\u05d9\u05d9\u05dd, \u05d5\u05de\u05e4\u05ea\u05d7\u05d9\u05dd \u05de\u05db\u05dc \u05d4\u05e6\u05d1\u05e2\u05d9\u05dd \u05d5\u05d4\u05de\u05d9\u05e0\u05d9\u05dd \u05de\u05d7\u05e4\u05e9\u05d9\u05dd \u05d0\u05ea \u05d3\u05e8\u05db\u05dd \u05dc\u05d8\u05db\u05e0\u05d5\u05dc\u05d5\u05d2\u05d9\u05d5\u05ea \u05d4\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8 \u05d4\u05de\u05d5\u05d3\u05e8\u05e0\u05d9\u05d5\u05ea. \u05e6\u05d3 \u05d4\u05dc\u05e7\u05d5\u05d7 (Frontend) \u05d7\u05d5\u05d6\u05e8 \u05dc\u05d4\u05d9\u05d5\u05ea Rich Client \u05e2\u05dd \u05d4\u05e8\u05d1\u05d4 \u05dc\u05d5\u05d2\u05d9\u05e7\u05d4 \u05d5\u05e0\u05d9\u05d4\u05d5\u05dc State. \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e7\u05d5\u05e8\u05d9\u05dd \u05de\u05d4\u05e8 \u05d1\u05ea\u05e7\u05d5\u05e4\u05ea\u05e0\u05d5, \u05d5\u05db\u05e9\u05d8\u05db\u05e0\u05d5\u05dc\u05d5\u05d2\u05d9\u05d5\u05ea \u05d7\u05d3\u05e9\u05d5\u05ea \u05d4\u05d5\u05e4\u05db\u05d5\u05ea \u05dc\u05d7\u05dc\u05e7 \u05de\u05d4\u05de\u05d9\u05d9\u05e0\u05e1\u05d8\u05e8\u05d9\u05dd \u05e9\u05dc \u05e2\u05d5\u05dc\u05dd \u05d4\u05e4\u05d9\u05ea\u05d5\u05d7 \u05d0\u05e0\u05d7\u05e0\u05d5 \u05de\u05e7\u05d1\u05dc\u05d9\u05dd \u05ea\u05d7\u05d5\u05e9\u05d4 \u05e9\u05d4\u05df \u05ea\u05de\u05d9\u05d3 \u05d4\u05d9\u05d5 \u05db\u05d0\u05df. \u05d0\u05dd \u05e0\u05e2\u05e9\u05d4 \u05d6\u05d5\u05dd \u05d0\u05d0\u05d5\u05d8 \u05dc\u05e8\u05d2\u05e2 \u05d5\u05e0\u05d7\u05d6\u05d5\u05e8 \u05d0\u05d7\u05d5\u05e8\u05d4, \u05e0\u05d5\u05db\u05dc \u05dc\u05d4\u05e6\u05d1\u05d9\u05e2 \u05e2\u05dc \u05e9\u05d5\u05d1\u05d5 \u05e9\u05dc \u05d4\u05dc\u05e7\u05d5\u05d7 \u05d4\u05e2\u05e9\u05d9\u05e8, \u05d4 Rich Client.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u05ea\u05e7\u05e6\u05d9\u05e8 \u05d4\u05e4\u05e8\u05e7\u05d9\u05dd \u05d4\u05e7\u05d5\u05d3\u05de\u05d9\u05dd<\/h2>\n\n\n\n<p>\u05d7\u05d5\u05d5\u05d9\u05ea\u05d9 \u05db\u05d1\u05e8 \u05de\u05d4\u05e4\u05da \u05d8\u05db\u05e0\u05d5\u05dc\u05d5\u05d2\u05d9 \u05d1\u05e1\u05d3\u05e8 \u05d2\u05d5\u05d3\u05dc \u05d4\u05d6\u05d4, \u05d6\u05d4 \u05d4\u05d9\u05d4 \u05db\u05e9\u05d4\u05e4\u05e1\u05e7\u05ea\u05d9 \u05dc\u05e2\u05d1\u05d5\u05d3 \u05e2\u05dc \u05de\u05d7\u05e9\u05d1\u05d9 MainFrame \u05e9\u05ea\u05e4\u05e1\u05d5 \u05e9\u05d8\u05d7 \u05e9\u05dc \u05de\u05db\u05d5\u05dc\u05d4 \u05d1\u05d9\u05e0\u05d5\u05e0\u05d9\u05ea \u05d5\u05e2\u05d1\u05e8\u05ea\u05d9 \u05dc\u05e2\u05d1\u05d5\u05d3 \u05e2\u05dc \u05de\u05d7\u05e9\u05d1\u05d9 PC &#8211; \u05d4\u05d9\u05d9\u05ea\u05d9 \u05e2\u05d3\u05d9\u05d9\u05df \u05d1\u05e6\u05d1\u05d0, \u05d5\u05d6\u05d4 \u05e7\u05e8\u05d4 \u05e7\u05e6\u05ea \u05dc\u05e4\u05e0\u05d9 \u05db\u05d5\u05e0\u05e0\u05d5\u05ea \u05d4\u05dc\u05d9\u05dc\u05d4 \u05d4\u05d1\u05dc\u05ea\u05d9 \u05e0\u05e9\u05db\u05d7\u05ea \u05e9\u05dc \u05d1\u05d0\u05d2 2000 \u05d5\u05e9\u05d9\u05e0\u05d4 \u05d1\u05e9\u05e7&#8221;\u05e9 \u05dc\u05d9\u05d3 \u05e9\u05e0\u05d9 \u05e9\u05e8\u05ea\u05d9\u05dd \u05de\u05d4\u05d1\u05d4\u05d1\u05d9\u05dd \u05d5\u05de\u05e8\u05d9\u05de\u05d9 \u05d2\u05d1\u05d4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/vyaron.github.io\/ca-blog\/img\/mf.gif\" alt=\"\u05de\u05d9\u05d9\u05e0\u05e4\u05e8\u05d9\u05d9\u05dd\"\/><\/figure>\n\n\n\n<p>\u05d0\u05d7\u05e8 \u05db\u05da \u05d4\u05d2\u05d9\u05e2\u05d4 \u05ea\u05e7\u05d5\u05e4\u05d4 \u05e8\u05d5\u05d5\u05d9\u05d9\u05ea \u05d4\u05d5\u05e8\u05de\u05d5\u05e0\u05d9\u05dd, \u05d0\u05de\u05d1\u05d9\u05e6\u05d9\u05d4, \u05d0\u05d5\u05d1\u05d2&#8217;\u05e7\u05d8 \u05d0\u05d5\u05e8\u05d9\u05d0\u05e0\u05d8\u05d3 \u05d5-C++, \u05d6\u05d4 \u05d4\u05d9\u05d4 \u05db\u05e9\u05de\u05e4\u05ea\u05d7\u05d9 C \u05d4\u05ea\u05d7\u05d9\u05dc\u05d5 \u05e4\u05ea\u05d0\u05d5\u05dd \u05dc\u05d4\u05e8\u05d2\u05d9\u05e9 \u05dc\u05d0 \u05d1\u05e0\u05d5\u05d7 \u05e9\u05d4\u05dd \u05e2\u05d3\u05d9\u05d9\u05df \u05dc\u05d0 \u05dc\u05de\u05d3\u05d5 \u05dc\u05d7\u05e9\u05d5\u05d1 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05de\u05d5\u05e0\u05d7\u05d9\u05ea \u05e2\u05e6\u05de\u05d9\u05dd \u05d5\u05dc\u05d0 \u05de\u05d1\u05d9\u05e0\u05d9\u05dd \u05d0\u05ea \u05d4\u05d1\u05d3\u05d9\u05d7\u05d5\u05ea \u05e2\u05dc \u05d0\u05d5\u05d1\u05d9\u05d9\u05e7\u05d8\u05d9\u05dd \u05d5\u05d9\u05e8\u05d5\u05e9\u05d4 \u05d5\u05d2\u05dd \u05dc\u05de\u05d4 \u05e4\u05ea\u05d0\u05d5\u05dd \u05de\u05db\u05e0\u05d9\u05dd \u05d0\u05d5\u05ea\u05dd \u05de\u05d0\u05d7\u05e8\u05d9 \u05d4\u05d2\u05d1 \u05de\u05e4\u05ea\u05d7\u05d9\u05dd \u05e4\u05e8\u05d5\u05e6\u05d3\u05d5-\u05e8-\u05dc\u05d9\u05d9\u05dd.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u05d5\u05d0\u05d6 \u05d4\u05d2\u05d9\u05e2\u05d4 Java<\/h2>\n\n\n\n<p>\u05db\u05e9\u05d4\u05d2\u05d9\u05e2\u05d4 \u05d2&#8217;\u05d0\u05d5\u05d4 \u05e2\u05dd \u05d4\u05dc\u05d4\u05d9\u05d8 Write Once Run Anywhere \u05d4\u05d9\u05d0 \u05dc\u05e2\u05d2\u05d4 \u05dc\u05d0\u05d7\u05d5\u05ea\u05d4 \u05d4\u05d6\u05e7\u05e0\u05d4 \u05d5\u05e7\u05e0\u05d8\u05e8\u05d4 \u05d0\u05d5\u05ea\u05d4 \u05d1\u05e9\u05dd: C with Classes. \u05d4\u05d9\u05d0 \u05d0\u05d4\u05d1\u05d4 \u05dc\u05d4\u05ea\u05d4\u05d3\u05e8 \u05d1\u05e2\u05d5\u05d1\u05d3\u05d4 \u05e9\u05d4\u05d9\u05d0 Pure Object Oriented \u05d5\u05db\u05db\u05d6\u05d0\u05ea \u05db\u05dc \u05d3\u05d1\u05e8 \u05d0\u05e6\u05dc\u05d4 \u05d9\u05d4\u05d9\u05d4 (\u05e4\u05d9\u05e8\u05e1\u05d8) Class.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u05e2\u05d9\u05e0\u05d9\u05d9\u05dd \u05e0\u05d5\u05e6\u05e6\u05d5\u05ea<\/h2>\n\n\n\n<p>\u05d0\u05e2\u05d9\u05d3 \u05e2\u05dc \u05e2\u05e6\u05de\u05d9 \u05e9\u05d4\u05e2\u05d9\u05e0\u05d9\u05d9\u05dd \u05e0\u05e6\u05e6\u05d5 \u05d1\u05d4\u05ea\u05e8\u05d2\u05e9\u05d5\u05ea \u05d5\u05d4\u05ea\u05d7\u05d5\u05e9\u05d4 \u05d4\u05d9\u05ea\u05d4 \u05e9\u05d0\u05dd \u05e8\u05e7 \u05e0\u05d9\u05d9\u05d8\u05d9\u05d1 \u05dc\u05ea\u05d0\u05e8 \u05d0\u05ea \u05d4\u05e2\u05d5\u05dc\u05dd \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05de\u05d7\u05dc\u05e7\u05d5\u05ea \u05d5\u05d9\u05e8\u05d5\u05e9\u05d5\u05ea, \u05d5\u05db\u05dc \u05d0\u05d5\u05d1\u05d9\u05d9\u05e7\u05d8 \u05d9\u05db\u05de\u05d9\u05e1 \u05d0\u05ea \u05d4State \u05e9\u05dc\u05d5, \u05d0\u05d5-\u05d0\u05d6 \u05d9\u05d4\u05d9\u05d4 \u05d1\u05d9\u05d3\u05d9\u05e0\u05d5 \u05d4\u05de\u05e4\u05ea\u05d7 \u05dc\u05ea\u05e2\u05dc\u05d5\u05de\u05d4 \u05d4\u05d2\u05d3\u05d5\u05dc\u05d4 \u05de\u05db\u05dc &#8211; \u05d0\u05d9\u05da \u05de\u05e4\u05ea\u05d7\u05d9\u05dd \u05de\u05e2\u05e8\u05db\u05ea \u05e9\u05e7\u05dc \u05dc\u05ea\u05d7\u05d6\u05e7 \u05d5\u05e9\u05dc\u05d0 \u05e0\u05e8\u05e7\u05d1\u05ea \u05db\u05dc \u05db\u05da \u05de\u05d4\u05e8. \u05d0\u05ea \u05d4\u05ea\u05d5\u05e8\u05d4 \u05d4\u05d6\u05d5 \u05dc\u05de\u05d3\u05ea\u05d9 \u05d5\u05dc\u05d9\u05de\u05d3\u05ea\u05d9, \u05d5\u05dc\u05d9\u05d5\u05d5\u05d9\u05ea\u05d9 \u05d0\u05d9\u05ea\u05d4 \u05e2\u05e9\u05e8\u05d5\u05ea \u05e6\u05d5\u05d5\u05ea\u05d9 \u05e4\u05d9\u05ea\u05d5\u05d7 \u05d1\u05de\u05d4\u05dc\u05da \u05d4\u05e9\u05e0\u05d9\u05dd.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u05d0\u05d5\u05e4\u05e1, \u05d6\u05d4 \u05e6\u05e8\u05d9\u05da \u05dc\u05e2\u05d1\u05d5\u05d3 \u05d1\u05de\u05e7\u05d1\u05d9\u05dc<\/h2>\n\n\n\n<p>\u05d0\u05de\u05e8\u05d4 \u05dc\u05d9 \u05d4\u05e9\u05d1\u05d5\u05e2 \u05de\u05d9\u05e9\u05d4\u05d9 &#8211; \u05d0\u05d9\u05df \u05d3\u05d1\u05e8 \u05de\u05e1\u05d5\u05db\u05df \u05d9\u05d5\u05ea\u05e8 \u05de\u05de\u05e6\u05d1\u05d9\u05d0 \u05e2\u05dd \u05de\u05e4\u05d4 \u05d5\u05e8\u05e2\u05d9\u05d5\u05df.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/vyaron.github.io\/ca-blog\/img\/warlord.jpg\" alt=\"OOP\"\/><\/figure>\n\n\n\n<p>\u05d1\u05e4\u05d5\u05e2\u05dc \u05d4\u05e1\u05ea\u05d1\u05e8 \u05e9\u05de\u05e2\u05e8\u05db\u05d5\u05ea \u05e9\u05d1\u05e0\u05d5\u05d9\u05d5\u05ea \u05dc\u05d2\u05de\u05e8\u05d9 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05db\u05d6\u05d5, \u05dc\u05d0 \u05de\u05ea\u05de\u05d5\u05d3\u05d3\u05d5\u05ea \u05d8\u05d5\u05d1 \u05e2\u05dd \u05de\u05e7\u05d1\u05d9\u05dc\u05d9\u05d5\u05ea \u05d5- Multithreading.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>Please be an Atomic Operation<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/vyaron.github.io\/ca-blog\/img\/atomic.jpg\" alt=\"\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d0\u05d8\u05d5\u05de\u05d9\u05ea\"\/><\/figure>\n\n\n\n<p>\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d4\u05d2\u05d9\u05d3 \u05e9\u05d0\u05d3\u05d5\u05df Concurrency \u05e7\u05e8\u05e2 \u05de\u05e2\u05e8\u05db\u05d5\u05ea \u05dc\u05d2\u05d6\u05e8\u05d9\u05dd, \u05d5\u05d4\u05d1\u05d9\u05d0 \u05e6\u05d5\u05d5\u05ea\u05d9\u05dd \u05dc\u05d1\u05e8\u05db\u05d9\u05d9\u05dd \u05d1\u05e0\u05d9\u05e1\u05d9\u05d5\u05df \u05dc\u05d0\u05ea\u05e8 Deadlocks \u05d5\u05dc\u05e1\u05e0\u05db\u05e8\u05df \u05e7\u05d8\u05e2\u05d9\u05dd \u05e7\u05e8\u05d9\u05d8\u05d9\u05d9\u05dd \u05ea\u05d5\u05da \u05d4\u05de\u05e0\u05e2\u05d5\u05ea \u05de\u05d1\u05e2\u05d9\u05d5\u05ea \u05d1\u05d9\u05e6\u05d5\u05e2\u05d9\u05dd \u05d5\u05d4\u05e8\u05e2\u05d1\u05d4.<\/p>\n\n\n\n<p>Shared mutable state concurrency is too damn hard: incorrect synchronization, deadlocks, starvation, inconsistent behavior, lost updates or dirty reads, are all there like accidents waiting to happen.<\/p>\n\n\n\n<p>\u05db\u05d9\u05d5\u05dd \u05d0\u05e0\u05d7\u05e0\u05d5 \u05d9\u05d5\u05d3\u05e2\u05d9\u05dd \u05e9\u05dc\u05ea\u05db\u05e0\u05d5\u05ea \u05e4\u05d5\u05e0\u05e7\u05e6\u05d9\u05d5\u05e0\u05d0\u05dc\u05d9 \u05d9\u05ea\u05e8\u05d5\u05e0\u05d5\u05ea \u05e8\u05d1\u05d9\u05dd \u05d5\u05e4\u05dc\u05d8\u05e4\u05d5\u05e8\u05de\u05d5\u05ea \u05db\u05de\u05d5 \u05d0\u05e0\u05d2\u05d5\u05dc\u05e8 \u05ea\u05dc\u05d5\u05d9\u05d5\u05ea \u05d5\u05de\u05d2\u05d9\u05e2\u05d5\u05ea \u05e2\u05dd \u05e1\u05e4\u05e8\u05d9\u05d9\u05ea Rxjs \u05d4\u05de\u05d5\u05d8\u05de\u05e2\u05ea \u05dc\u05ea\u05d5\u05da \u05d4APIs \u05e9\u05dc \u05d4\u05e1\u05d1\u05d9\u05d1\u05d4, \u05d6\u05d4 \u05e7\u05e8\u05d9\u05d8\u05d9 \u05db\u05d9 \u05d4\u05de\u05e7\u05d1\u05d9\u05dc\u05d9\u05d5\u05ea \u05de\u05d2\u05d9\u05e2\u05d4 \u05dcJavascript \u05de\u05e2\u05d1\u05e8 \u05dc\u05e4\u05d9\u05e0\u05d4 \u05d5\u05d1\u05db\u05dc \u05d4\u05db\u05d7.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/vyaron.github.io\/ca-blog\/img\/fr.gif\" alt=\"functional reactive programming\"\/><\/figure>\n\n\n\n<p>Multi threading is hard for both humans and machines<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/vyaron.github.io\/ca-blog\/img\/mt.gif\" alt=\"Multithreading\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Old school Rich-Clients<\/h2>\n\n\n\n<p>\u05e2\u05d5\u05dc\u05dd \u05d4\u05de\u05d7\u05e9\u05d5\u05d1 \u05d4\u05ea\u05e4\u05ea\u05d7 \u05de\u05de\u05db\u05d5\u05e0\u05d5\u05ea \u05de\u05d9\u05d9\u05e0\u05e4\u05e8\u05dd \u05e9\u05de\u05e0\u05de\u05e0\u05d5\u05ea \u05e9\u05e0\u05d5\u05ea\u05e0\u05d5\u05ea \u05db\u05d5\u05d7 \u05e2\u05d9\u05d1\u05d5\u05d3 \u05de\u05d5\u05d2\u05d1\u05dc \u05dc\u05de\u05e1\u05d5\u05e4\u05d5\u05e0\u05d9\u05dd \u05d9\u05e8\u05e7\u05e8\u05e7\u05d9\u05dd \u05dc\u05dc\u05d0 \u05db\u05d5\u05d7 \u05e2\u05d9\u05d1\u05d5\u05d3 \u05de\u05e9\u05dc\u05d4\u05dd \u05d5\u05d4\u05ea\u05e7\u05d3\u05dd \u05dc\u05de\u05d7\u05e9\u05d1\u05d9\u05dd \u05d0\u05d9\u05e9\u05d9\u05d9\u05dd, \u05e2\u05d1\u05e8\u05e0\u05d5 \u05d0\u05d6 \u05dc\u05e4\u05ea\u05d7 Rich Clients &#8211; \u05e9\u05dd \u05d9\u05d5\u05de\u05e8\u05e0\u05d9 \u05e9\u05d4\u05d9\u05d4 \u05de\u05e7\u05d5\u05d1\u05dc \u05d0\u05d6 \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d5\u05ea \u05e9\u05de\u05e0\u05de\u05e0\u05d5\u05ea \u05e9\u05de\u05ea\u05e7\u05d9\u05e0\u05d9\u05dd \u05e2\u05dc \u05de\u05d7\u05e9\u05d1 \u05d4\u05dc\u05e7\u05d5\u05d7.<\/p>\n\n\n\n<p>\u05e0\u05d9\u05d4\u05d5\u05dc \u05d4\u05d2\u05e8\u05e1\u05d0\u05d5\u05ea \u05e9\u05dc \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d5\u05ea \u05e9\u05d5\u05e0\u05d5\u05ea \u05d0\u05e6\u05dc \u05dc\u05e7\u05d5\u05d7\u05d5\u05ea \u05e9\u05d5\u05e0\u05d9\u05dd \u05d4\u05d9\u05d4 \u05db\u05d0\u05d1 \u05d2\u05d3\u05d5\u05dc, \u05de\u05e4\u05e0\u05d9 \u05e9\u05d4\u05d9\u05d4 \u05ea\u05dc\u05d5\u05d9 \u05d2\u05dd \u05d1\u05e9\u05d9\u05ea\u05d5\u05e3 \u05d4\u05e4\u05e2\u05d5\u05dc\u05d4 \u05e9\u05dc \u05d4\u05dc\u05e7\u05d5\u05d7\u05d5\u05ea \u05d1\u05e2\u05d3\u05db\u05d5\u05e0\u05d9 \u05d2\u05e8\u05e1\u05d4 \u05de\u05e7\u05d5\u05de\u05d9\u05d9\u05dd \u05d0\u05d5 \u05d3\u05e8\u05e9 \u05e2\u05d1\u05d5\u05d3\u05ea IT \u05de\u05d0\u05d5\u05de\u05e6\u05ea.<\/p>\n\n\n\n<p>\u05d5\u05d0\u05d6 \u05d4\u05d2\u05d9\u05e2 \u05d4\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8, \u05d5\u05dc\u05de\u05e8\u05d5\u05ea \u05e9\u05d4\u05e6\u05d9\u05e2 \u05de\u05de\u05e9\u05e7 \u05de\u05d5\u05d2\u05d1\u05dc \u05de\u05d0\u05d5\u05d3, \u05d4\u05e4\u05da \u05dc\u05d0\u05dc\u05d8\u05e8\u05e0\u05d8\u05d9\u05d1\u05d4 \u05e4\u05d5\u05e4\u05d5\u05dc\u05e8\u05d9\u05ea \u05d5\u05d4\u05e2\u05d5\u05dc\u05dd \u05d6\u05d6 \u05dc- Thin Clients \u05de\u05d1\u05d5\u05e1\u05e1\u05d9 \u05d3\u05e4\u05d3\u05e4\u05df &#8211; \u05e9\u05e4\u05ea Javascript \u05d4\u05e8\u05d2\u05d9\u05e9\u05d4 \u05db\u05de\u05d5 \u05d4\u05d9\u05dc\u05d3\u05d4 \u05d4\u05d3\u05d7\u05d5\u05d9\u05d4 \u05e9\u05dc \u05d4\u05e9\u05db\u05d5\u05e0\u05d4 \u05e9\u05e4\u05ea\u05d0\u05d5\u05dd \u05de\u05e9\u05ea\u05e4\u05d9\u05dd \u05d0\u05d5\u05ea\u05d4 \u05d1\u05de\u05e9\u05d7\u05e7\u05d9\u05dd \u05e4\u05d4 \u05d5\u05e9\u05dd, \u05d0\u05d1\u05dc \u05d1\u05e7\u05d8\u05e0\u05d4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u2026and then there was Javascript everywhere<\/h2>\n\n\n\n<p>\u05d4\u05d9\u05dc\u05d3\u05d4 \u05d4\u05d6\u05d5 \u05d4\u05ea\u05d1\u05d2\u05e8\u05d4 \u05de\u05d0\u05d6 \u05d5\u05d1\u05e9\u05e0\u05d9\u05dd \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d5\u05ea \u05d4\u05e4\u05db\u05d4 \u05dc\u05e0\u05e1\u05d9\u05db\u05ea \u05d4\u05e9\u05e4\u05d5\u05ea, \u05d9\u05e9 \u05e9\u05de\u05d2\u05d3\u05d9\u05dc\u05d9\u05dd \u05dc\u05e2\u05e9\u05d5\u05ea \u05d5\u05de\u05db\u05e0\u05d9\u05dd \u05d0\u05d5\u05ea\u05d4 \u05e9\u05e4\u05ea \u05d4\u05d0\u05e1\u05de\u05d1\u05dc\u05e8 \u05e9\u05dc \u05d4\u05d3\u05d5\u05e8 \u05d4\u05d7\u05d3\u05e9 \u05d5\u05d0\u05ea \u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05db &#8211; Virtual Machine \u05d4\u05d7\u05d3\u05e9.<\/p>\n\n\n\n<p>Javascript \u05de\u05e9\u05de\u05e9\u05ea \u05d4\u05d9\u05d5\u05dd \u05dc\u05e4\u05d9\u05ea\u05d5\u05d7 \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d5\u05ea \u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8 \u05de\u05e7\u05e6\u05d4 \u05dc\u05e7\u05e6\u05d4, \u05db\u05d5\u05dc\u05dc \u05e6\u05d3 \u05e9\u05e8\u05ea (Nodejs), \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d5\u05ea \u05de\u05d5\u05d1\u05d9\u05d9\u05dc, \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d5\u05ea \u05d3\u05e1\u05e7\u05d8\u05d5\u05e4 \u05d5\u05d0\u05e3 \u05e8\u05d5\u05d1\u05d5\u05d8\u05d9\u05e7\u05d4, \u05d5\u05d4\u05d9\u05db\u05d5\u05dc\u05ea \u05dc\u05e0\u05d9\u05d9\u05d3 \u05e7\u05d5\u05d3 \u05d5\u05de\u05e4\u05ea\u05d7\u05d9\u05dd \u05e2\u05dd Single Skill Set \u05e7\u05d5\u05e1\u05dd \u05dc\u05d7\u05d1\u05e8\u05d5\u05ea \u05e8\u05d1\u05d5\u05ea.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/vyaron.github.io\/ca-blog\/img\/node.png\" alt=\"Node.js\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The return of the Rich-Client<\/h2>\n\n\n\n<p>\u05d1\u05e6\u05d3 \u05d4\u05dc\u05e7\u05d5\u05d7 (Frontend) \u05d2&#8217;\u05d0\u05d5\u05d5\u05e1\u05e7\u05e8\u05d9\u05e4\u05d8 \u05d4\u05d9\u05d0 \u05d4\u05e9\u05dc\u05d9\u05d8\u05d4 \u05d4\u05d0\u05d5\u05dc\u05d8\u05d9\u05de\u05d8\u05d9\u05d1\u05d9\u05ea, \u05d5\u05e9\u05e4\u05ea \u05d4\u05d9\u05e1\u05d5\u05d3 \u05e9\u05de\u05ea\u05d7\u05ea \u05dc\u05e1\u05e4\u05e8\u05d9\u05d5\u05ea \u05db\u05de\u05d5 \u05e8\u05d9\u05d0\u05e7\u05d8, \u05d5\u05dc\u05e4\u05e8\u05d9\u05d9\u05de\u05d5\u05d5\u05e8\u05e7\u05d9\u05dd \u05db\u05de\u05d5 \u05d0\u05e0\u05d2\u05d5\u05dc\u05e8 \u05d0\u05d5 VUE<\/p>\n\n\n\n<p>\u05d4\u05ea\u05db\u05e0\u05d5\u05ea \u05d4\u05de\u05d5\u05d3\u05e8\u05e0\u05d9 \u05de\u05d1\u05d9\u05d0 \u05e2\u05d9\u05de\u05d5 \u05e9\u05d9\u05dc\u05d5\u05d1 \u05e9\u05dc \u05e8\u05e2\u05d9\u05d5\u05e0\u05d5\u05ea \u05d8\u05d5\u05d1\u05d9\u05dd \u05de\u05db\u05dc \u05d4\u05d6\u05de\u05e0\u05d9\u05dd:<\/p>\n\n\n\n<ul>\n<li>\u05de\u05e7\u05d5\u05dd (\u05de\u05d5\u05d2\u05d1\u05dc) \u05e9\u05dc \u05db\u05d1\u05d5\u05d3 \u05dc\u05d0\u05d5\u05d1\u05d2&#8217;\u05e7\u05d8 \u05d0\u05d5\u05e8\u05d9\u05d0\u05e0\u05d8\u05d3 Object Oriented Programming<\/li>\n\n\n\n<li>\u05de\u05e7\u05d5\u05dd (\u05de\u05d5\u05d2\u05d1\u05dc) \u05e9\u05dc \u05db\u05d1\u05d5\u05d3 \u05dc Static Typing and compile time errors<\/li>\n\n\n\n<li>\u05d4\u05d6\u05de\u05e0\u05d4 \u05dc\u05ea\u05db\u05e0\u05d5\u05ea \u05e4\u05d5\u05e0\u05e7\u05e6\u05d9\u05d5\u05e0\u05d0\u05dc\u05d9 \u05d1\u05de\u05e7\u05d5\u05de\u05d5\u05ea \u05d4\u05de\u05ea\u05d0\u05d9\u05de\u05d9\u05dd \u05dc\u05db\u05da<\/li>\n\n\n\n<li>\u05d4\u05ea\u05d9\u05d9\u05d7\u05e1\u05d5\u05ea \u05e1\u05e4\u05e6\u05d9\u05e4\u05d9\u05ea \u05dc\u05de\u05d2\u05d1\u05dc\u05d5\u05ea \u05d5\u05d9\u05db\u05d5\u05dc\u05d5\u05ea \u05d1-Mobile<\/li>\n\n\n\n<li>\u05db\u05dc\u05d9\u05dd \u05d4\u05de\u05d0\u05e4\u05e9\u05e8\u05d9\u05dd \u05e0\u05d9\u05d4\u05d5\u05dc State \u05d5- One way data flow<\/li>\n\n\n\n<li>\u05d9\u05db\u05d5\u05dc\u05ea \u05de\u05d5\u05d1\u05e0\u05d9\u05ea \u05dc\u05d1\u05d3\u05d9\u05e7\u05d5\u05ea \u05e7\u05d5\u05d3 \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9\u05d5\u05ea (\u05db\u05d5\u05dc\u05dc \u05d9\u05db\u05d5\u05dc\u05ea Dependency Injections)<\/li>\n<\/ul>\n\n\n\n<p>\u05dc\u05e1\u05d9\u05db\u05d5\u05dd, \u05d0\u05e0\u05d9 \u05de\u05d0\u05de\u05d9\u05df \u05e9\u05d0\u05e0\u05d7\u05e0\u05d5 \u05d1\u05ea\u05e7\u05d5\u05e4\u05d4 \u05de\u05e8\u05ea\u05e7\u05ea \u05de\u05d1\u05d7\u05d9\u05e0\u05d4 \u05d8\u05db\u05e0\u05d5\u05dc\u05d5\u05d2\u05d9\u05ea, \u05e9\u05d1\u05d4 \u05d4\u05e1\u05d8\u05e0\u05d3\u05e8\u05d8\u05d9\u05dd \u05d4\u05de\u05e6\u05d5\u05e4\u05d9\u05dd \u05de\u05e6\u05d5\u05d5\u05ea\u05d9 \u05e4\u05d9\u05ea\u05d5\u05d7 \u05de\u05e7\u05e6\u05d5\u05e2\u05d9\u05d9\u05dd \u05d4\u05dd \u05d2\u05d1\u05d5\u05d4\u05d9\u05dd \u05de\u05d0\u05d9\u05d9 \u05e4\u05e2\u05dd. \u05ea\u05e7\u05d5\u05e4\u05d4 \u05e9\u05d1\u05d4 (\u05d0\u05d5\u05dc\u05d9) \u05d4\u05d5\u05e0\u05d7\u05d5 \u05d1\u05d9\u05d3\u05d9\u05e0\u05d5 \u05d4\u05db\u05dc\u05d9\u05dd \u05dc\u05e4\u05ea\u05d7 \u05de\u05e2\u05e8\u05db\u05d5\u05ea \u05e9\u05d9\u05d5\u05d3\u05e2\u05d5\u05ea \u05dc\u05d2\u05d3\u05d5\u05dc, \u05d4\u05df \u05de\u05d1\u05d7\u05d9\u05e0\u05ea \u05e7\u05d5\u05d3 \u05d5\u05d4\u05df \u05de\u05d1\u05d7\u05d9\u05e0\u05ea \u05e6\u05d5\u05d5\u05ea\u05d9 \u05d4\u05e4\u05d9\u05ea\u05d5\u05d7 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d4\u05de\u05d0\u05e4\u05e9\u05e8\u05ea \u05dc\u05d4\u05df \u05dc\u05e9\u05e8\u05d5\u05d3 \u05d0\u05ea \u05e4\u05d2\u05e2\u05d9 \u05d4\u05d6\u05de\u05df \u05d5\u05d4\u05de\u05e8\u05d7\u05d1 \u05d5\u05dc\u05d4\u05e8\u05e7\u05d1 \u05e4\u05d7\u05d5\u05ea.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u05e1\u05e7\u05d9\u05e8\u05d4 \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05ea<\/p>\n","protected":false},"author":2,"featured_media":216,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/posts\/50"}],"collection":[{"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/comments?post=50"}],"version-history":[{"count":2,"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/posts\/50\/revisions"}],"predecessor-version":[{"id":218,"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/posts\/50\/revisions\/218"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/media\/216"}],"wp:attachment":[{"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/media?parent=50"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/categories?post=50"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coding-academy.org\/blog\/wp-json\/wp\/v2\/tags?post=50"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}