پروگرامما تىلى ئۈگىنىش ئالدىدا
(yeganaaa Software Studio)
ئالدىنقى قىتىملىق تېمامدا پروگرامما تىلى دىگەن نىمە دىگەن تېما توغرىسىدا مۇلاھىزە ئىلىپ باردۇق،
پروگرامما تىلى توغرىسىدا چۈشەنچىگە ئىگە بولدۇق،
ئەمدى بىز نۇرغۇن پروگرامما تىللىرىنى ئاڭلاپ باققان، مەسىلەن Java, C, C++, C#, Visual Basic, Bython, Objectv-C, F# دىگەندەك،
بىز ھەر بىر پروگرامما تىلىنى ئىنسانلارنىڭ ھەر بىر مەلۇم تىلىغا ئوخشاتساق تامامەن بولىدۇ، يەنى مۇشۇنداق ئوخشىتىش ئارقىلىق پروگرامما تىللىرىنى تىخىمۇ ياخشى چۈشىنىمىز.
ئالدىنقى قىتىمقى تېمىدا ماشىنا ئىنسانلارغا تەقلىد قىلىنغانلىقىنى دىدۇق، ھەم ئوخشاشلىقلىرىنى تەھلىل قىلدۇق، ھەم شۇنداق بولغانكەن پروگرامما تىلى دىگەن نەرسىمۇ ئىنسانلارنىڭ تىلىغا تەقلىد قىلىنىپ بارلىققا كەلگەن نەرسە دەپ چۈشىنىپ تۇرساقمۇ بولىدۇ.
ئۇنداقتا بىز مۇنداق بىر نۇقتىنى تەھلىل قىلىپ باقايلىمۇ؟
ئانا يۇرىت دىگەن رومان بار، ئۇنى ھەممىمىز بىلىمىزغۇ؟ توغرا ھەممىمىز بىلىمىز، ئۇنداقتا ئويلاپ باقايلى، ئانا يۇرىت دىگەن روماننى خەنزۇتىلىدا يىزىپ چىقىشقا بولامدۇ؟ ئىنگىلىزتىلىدىچۇ؟ ئەرەپ تىلى؟ گىرمان تىلى؟؟؟...
نىمىشقا بولمايدىكەن؟ ئەلۋەتتە يىزىپ چىقىشقا بولىدۇ،
مەن قايسى بىر تېمامدا دىگەندەك ئۇيغۇرچە ئىسمىڭىز نىمە؟ دىگەننى خەنزۇتىلىدا يىزىپ چىقىشقا بولامدۇ؟
بولىدۇ شۇنداققۇ؟ خەنزۇچە يازساق 你叫什么名字? دەپ يىزىشقا بولىدۇ، ئىنگىلىزچە What Is Your Name دەپ يىزىشقا بولىدۇ،
بۇ نىمە دىگەنلىك؟ ئويلاپ بىقىڭ، بۇ دىگەنلىك بىر تىلدا يازغان نەرسىنى يەنە بىر تىلدا تامامەن يازغىلى بولىدۇ دىگەن گەپ،
ئەمدى ئىنسانلارنىڭ تىلىدا بىر تىلدىكى ئەسەرنى يەنە بىر تىلدىمۇ تامامەن يىزىپ چىقىشقا بولىدۇ،
ئەمدى ماشىنا تىلىدىچۇ؟
بىز نىمىشقا ماشىنىنىڭمۇ تىللىرى نۇرغۇن تۈرگە بۆلىنىدىغىنىنى تەھلىل قىلىپ بولدۇق، يەنى شۇ ماشىنىنىڭ ئىشلىتىش ئورنى ۋە ئۆزىنىڭ قۇرۇلمىسىغا قاراپ ئىشلىتىدىغان تىلىمۇ ئوخشاش بولمايدۇ.
ئەمدى ماشىنا تىلىدىچۇ؟
ئەلۋەتتە بىر ماشىنا تىلىدا يازغان ئەسەرنى ئەلۋەتتە يەنە بىر تىلدىمۇ يىزىپ چىقىشقا بولىدۇ، ئەلۋەتتە يىزىپ چىقىشقا بولىدۇ،
ئەلۋەتتە مەسىلەن C تىلىدا يىزىلغان بىر پروگراممىنى Java ئارقىلىقمۇ يىزىپ چىقىشقا بولىدۇ،
شۇڭا ماۋۇ پروگرامما تىلى نوچى، ئاۋۇ ناچار دەيدىغان ئۇقۇم مەۋجۇت ئەمەس،
مەسىلەن سىز ئۇيغۇرتىلىدا يازغان بىر تىكىستنى خەنزۇتىلىدا يازالمىسىڭىز خەنزۇتىلى ناچاركەن، بولمايدىغان تىلكەن ئۇ، نىمىشقا خەنزۇتىلى ئۈگەنگەن بولغىيىتتىم؟؟؟ ئاھ، ئىھ، ئۇھ...
بۇ مەسىلىنى مۇشۇنداق دىسەك بولامدۇ؟
سىز يازماقچى بولغان نەرسىڭىزنى خەنزۇتىلىدا يازالماسلىقىڭىز ئۇ خەنزۇتىلىنىڭ سەۋەنلىكىمۇ؟ كونىلار ئاتالمىساڭ ئوقۇڭدىن، چىچالمىساڭ پوقۇڭدىن كۆرمە دەپ بەكمۇ توغرا ئىيىتقان،
شۇڭا دىمەكچى بولغىنىمنى چۈشەندىڭىزمۇ؟
بىر تىلدا يىزىپ چىققان ئەسەرنى باشقا بىر تىلدىمۇ ئەلۋەتتە يىزىپ چىقىشقا بولىدۇ!
ئۇنداقتا مۇنداق بىر يېڭى ئوي كاللىڭىزغا كىلىپ قىلىشى مۇمكىن،
مەن دىدىم، بىر تىلدا يىزىپ چىققان ئەسەرنى باشقا بىر تىلدا يىزىپ چىقىشقا بولىدۇ. مەن شۇنداق دىدىم، ئۇنداقتا مۇنداق خىياللار كاللىڭىزغا كىلىپ قىلىشى مۇمكىن، بىر تىلدا يىزىپ چىققان پروگراممىنى يەنە بىر تىلدا يىزىپ چىققىلى بولغاندىكىن نىمىشقا پەقەت بىرلا تىلنى ئىشلەتمەيدۇ؟ نىمىشقا نۇرغۇن نۇرغۇن پروگرامما تىللىرىنى ئىشلىتىمىز؟ بىرنىلا ئىشلەتسەك بولمامدۇ؟
بۇ نىمىشقا پۈتۈن دۇنيا خەلقى بىرلا تىلنى ئىشلەتمەيدۇ؟ شۇنداق قىلسا بولمامدۇ دىگەنگە باراۋەر بولۇپ قالىدۇ،
ئىنسانلارنىڭ تىلى توغرىسىدا بەك كۆپ نەرسە سۆزلەشكە ئاجىزلىق قىلىمەن، لىكىن نىمە ئۈچۈن نۇرغۇن پروگرامما تىللىرى بىرلا ۋاقىتتا مەۋجۇت بولىدۇ دىگەننىڭ جاۋابىنى مەن نەچچە قىتىم دەپ بولدۇم. يەنە دىسەم ئاشۇ نۇرغۇن تىپتىكى تۈردىكى ماشىنىلارنىڭ ئىشلىتىلىش ئورنىنىڭ پەرقى ۋە ماشىنىلارنىڭ ئۆزىنىڭ قۇرۇلمىسىنىڭ ئوخشىماسلىقى نۇرغۇن پروگرامما تىللىرىنىڭ بولىشىنى كەلتۈرۈپ چىقارغان.
خۇلاسەم، ماۋۇ پروگرامما تىلى نوچى دەيدىغان ئۇقۇم مەۋجۇت ئەمەس، لىكىن شۇ يادىڭىزدا بولسۇن، گەرچە بىر پروگرامما تىلىدا يازغان ئەسەرنى يەنە بىر پروگرامما تىلىدا يىزىشقا بولسىمۇ بىراق يەنىلا يىزىشقا ئەڭ ماس كىلىدىغان تىل بۇ مۇھىم ھالقا،
مەسىلەن سىز يەككە ئۆزەكلىك كومپىيۇتېرغا پروگرامما يازماقچى بولسىڭىز زادى چوقۇم Java دا يازاتتىم دىسىڭىز دىسىڭىز ئۆزىڭىزنى ھەقىقەتەن قىينىغان بولىسىز، قىينىلىپ قالىسىز.
ئۆزۈم چۈشىنىدىغان بەزى پروگرامما تىللىرى ۋە ئوتتۇرىدىكى پەرىقلەرنى سۆزلەپ ئۆتەي،
C
بۇ تىلنى بارلىق پروگرامما تىللىرىنىڭ ئانىسى دەپمۇ قويىدۇ بۇ تىل ھەقىقەتەن شۇنداق دىيىشكە ئەرزىيدىغان تىل، بۇنىڭ ئەڭ زور كۆرۈنەرلىك ئالاھىدىلىكى بولسا قاتتىق دېتال بىلەن ئىنتايىن يىقىن، بىۋاستە قاتتىق دېتاللارغا مەشغۇلات ئىلىپ بارالايدۇ،
C نىڭ قاتتىق دېتالغا بەكلا يىقىن بولۇش ئالاھىدىلىكىگە ئاساسەن C++ بىلەن بىللە يەككە ئۆزەكلىك كومپىيۇتېر، ئاردۇينو، ۋە باشقا تۈردىكى مىكرو تىپلىق بىر تەرەپ قىلغۇچلارغا مۇشۇ تىلدا پروگرامما يىزىلىدۇ.
C++
بۇ پروگرامما تىلى C تىلىنىڭ كۈچەيتىلگەن نۇسقىسى بولۇپمۇ ھىساپلىنىدۇ، بۇ تىل بولسا C تىلىنىڭ كۈچلۈك بولغان نۇرغۇن ئىقتىدارىنى ئۆزىگە مۇجەسسەملىگەن ھەم ئوبىيكىتقا يۈزلەنگەن پروگرامما تۈزۈش ئىددىيەسىنى ھازىرلىغان،
بۇ تىلمۇ C تىلىنىڭ نۇرغۇن ئالاھىدىلىكلىرىنى ساقلاپ قالغاچقا ئوخشاشلا قاتتىق دېتالغا بەكلا يىقىن. ئوخشاشلا قاتتىق دېتالغا بىۋاستە مەشغۇلات ئىلىپ بارالايدۇ، كۆپۈنچە C تىلىنىڭ كۈچلۈك ئىقتىدارى، C++ نىڭ ئوبىيكىتقا يۈزلەنگەن پروگرامما تۈزۈش ئىددىيەسى بىرلەشتۈرۈلۈپ C، C++ ھالەتتە ئىشلىتىلىدۇ.
ئادەتتە ۋىندوۋس نىڭ سىستېما پروگراممىلىرى ھەم سىستېما قىسمىنىمۇ مۇشۇ C++، C ۋە C، C++ دا يىزىپ چىقىدۇ،
C++ نىڭ قاتتىق دېتالغا بەكلا يىقىن بولۇش ئالاھىدىلىكىگە ئاساسەن C تىلى بىلەن بىرلىكتە ياكى يالغۇز يەككە ئۆزەكلىك كومپىيۇتېر، ئاردۇينو، ۋە باشقا تۈردىكى مىكرو تىپلىق بىر تەرەپ قىلغۇچلارغا مۇشۇ تىلدا پروگرامما يىزىلىدۇ.
ھەم شۇ ئالاھىدىلىكلىرى تۈپەيلى يۇقارقى ئىككى تىلنىڭ ئاساسلىقى يۆتكىلىشچانلىقى يوق دىيىشكە بولىدۇ،
يۇقارقى ئىككى پروگرامما تىلىنىڭ ئەڭ زور ئالاھىدىلىكلىرى دەل قاتتىق دېتالغا يىقىن بولۇش.
Java
بۇمۇ ھازىر ئالقىشقا ئىرىشىۋاتقان پروگرامما تىللىرىنىڭ بىرى، بۇ پروگرامما تىلىنىڭ ئەڭ زور ئارتۇقچىلىقى دەل ئۇنىڭ يۆتكىلىشچانلىقىدا، ئەگەر سىز Java دا پروگرامما يازسىڭىز پروگرامما يازغاندا ئازراقلا دىققەت قىلىپ ماڭسىڭىز سىز يازغان پروگراممىنى ئوخشىمىغان ھەر خىل مەشغۇلات سىستېمىلىرىدا ئىجرا قىلالايسىز، ھەتتا ئازراقمۇ چىقىلماي تۇرۇپ بىر قىتىم يازغان پروگراممىنى ئوخشىمىغان مەشغۇلات سۇپىسىدا ئىجرا قىلالايسىز، مەسىلەن سىز بىر پروگرامما يازسىڭىز پروگرامما يازغاندا سەللا دىققەت قىلىپ كەتسىڭىز سىز يازغان پروگراممىنى Windows, Linux, Mac OS X, Android قاتارلىق ئوخشىمىغان سۇپىلاردا ئىجرا قىلالايسىز، بۇ بىر ئۇنۋىرسال پروگرامما بولىدۇ، بۇ نىمىدىگەن ياخشى ھە؟
ئەمدى بۇ تىلنىڭ قاتتىق دېتال بىلەن بولغان مۇناسىۋىتىغا كەلسەك قاتتىق دېتال بىلەن بولغان ئارىلىقى يىراق، خىلىلا يىراق، دەل قاتتىق دېتالدىن يىراق بولىشى ئاندىن Java نىڭ يۆتكىلىشچانلىقىنى ئەمەلگە ئاشۇرالىغان، ئەگەر سىز قاتتىق دېتاللار بىلەن ئالاقە ئىلىپ بارىدىغان ئىشلارغا يولۇققاندا بۇنىڭدىمۇ ئەنسىرەشنىڭ ھاجىتى يوق، يەنى بۇ تۆۋەن قاتلامغا تەۋە مەشغۇلاتلارنى JVM يەنى Java Virtual Machine ۋاكالەتەن قىلىپ بىرىدۇ، كۆپ قىسىم تۆۋەن قاتلامدىكى مەشغۇلاتلاردا جاۋا پروگراممىسى ئاساسەن JVM گە تايىنىدۇ، يەنە مەشغۇلات سىستېمىسىغىمۇ تايىنىدۇ، ئەلۋەتتە بۇ تىلمۇ ئوبىيكىتقا يۈزلەنگەن پروگرامما لاھىيەلەش تىلى.
C#
بۇ پروگرامما تىلى بولسا Microsoft تەتقىق قىلىپ ئاچقان پروگرامما تىلى بولۇپ قۇرۇلمىسى، لوگىكىسى، گىرامماتىكىسى Java بىلەن ئالامەت ئوخشىشىپ كىتىدۇ،
C# مۇ بىر ئوبىيكىتقا يۈزلەنگەن پروگرامما لاھىيەلەش تىلى، Microsoft نىڭ ھەر قانداق بىر مەھسۇلاتىغا مۇشۇ تىلدا پروگرامما تۈزۈشكە بولىدۇ، مەيلى Windows, Windows Metro App, Windows Phone, ASP.Net دىگەندەك،
ھەم بۇ تىلمۇ جاۋاغا ئوخشاش مۇئەييەن يۆتكىلىشچانلىققا ئىگە، بۇ تىلدىمۇ غايەت زور بولغان بايلىق ئامبىرى .net framework دىن پايدىلىنىدىغان بولۇپ بۇ تىلدا يىزىلغان پروگرامما .net framework قا تايىنىدۇ، ھەم CLR (Common Language Runtime) دا ئىجرا بولىدۇ، CLR بولسا JVM غا ئوخشاش بىر ئىجرا مۇھىتى، CLR نىڭ MonoDevelopچىقارغان Linux ۋە Mac OS X نۇسقىسى بار بولۇپ C# پروگراممىسىنىمۇ Java پروگراممىسىغا ئوخشاشلا باشقا سۇپىلاردا ئاسانلا ئىجرا قىلىشقا بولىدۇ،
بۇ تىلنىڭ قاتتىق دېتال بىلەن بولغان مۇناسىۋىتى Java پروگراممىسىغا ئوخشىشىپ كىتىدۇ، يەنى قاتتىق دېتال بىلەن بولغان ئارىلىقى يىراق، ئەگەر قاتتىق دېتاللارغا بىۋاستە مەشغۇلات قىلىشقا توغرا كەلسە CLR بىلەن مەشغۇلات سىستېمىسىغا تايىنىدۇ، بۇ پروگرامما تىلىنى بىلسىڭىز Microsoft نىڭ ھەر قانداق بىر مەھسۇلاتىغا پروگرامما يازالايسىز!
Vusial Basic
بۇمۇ گىرامماتىكىسىنىڭ ئاددىيلىقى ئىقتىدارىنىڭ كۈچلۈكلىكى بىلەن پروگراممىرلارنىڭ ياخشى باھاسىغا ئىرىشكەن، بۇمۇ Microsoft شىركىتى تەتقىق قىلىپ چىققان پروگرامما تىلى بولۇپ ھازىرقى نەشىرى بولسا .net framework قا بىرلەشتۈرىۋىتىلدى، ھازىرقى نەشىرى بولسا C# پروگراممىسىغا ئوخشاشلا .net framework قا تايىنىدۇ، ھەم CLR (Common Language Runtime) دا ئىجرا بولىدۇ، ھازىرقى نەشىردىكى Vusial Basic
بىلەن C# نىڭ گىرامماتىكا پەرقى ۋە باشقا جەھەتلەردە روشەن پەرقى بولسىمۇ لىكىن Vusial Basic بىلەن C# لار قان-قىرىنداشلارغا ئوخشايدۇ، يەنى بىر مۇھىت ئۈستىدە ئىجرا بولىدۇ، ئوخشاش بىر مۇھىتقا تايىنىپ، ھەتتا بىر بىرىنىڭ تۈر ئامبىرى، كود ئامبىرى، exe, dll كىڭەيتمە نامىدىكى پروگرامما ھۆججەتلىرىنى بىۋاستە قوللايدۇ ھەم يۆتكەپ ئىشلىتەلەيدۇ، شۇڭا ئىقتىدار جەھەتتە C# بىلەن Visual Basic ھىچقانداق پەرىقلەنمەيدۇ،
ئەلۋەتتە Visual Basic نى بىلسىڭىز Microsoft شىركىتىنىڭ بارلىق مەھسۇلاتلىرىغا پروگرامما يازالايسىز. ئۇنىڭ ھازىرقى نەشىرىنىڭ نامى Vusial Basic.Net بولۇپ قاتتىق دېتال بىلەن بولغان مۇناسىۋىتى C# بىلەن ئوپمۇ-ئوخشاش.
ئەمدى سىز قايسى پروگرامما تىلىنى ئۈگەنمەكچى بولۇۋاتىسىز؟
قايسى پروگرامما تىلىنى ئۈگىنىشىڭىز سىزنىڭ نىشانىڭىزغا باغلىق،
ئاۋال ئۆزىڭىز نىمە قىلماقچى شۇنىڭغا ئاساسەن بىرەر پروگرامما تىلىنى تاللاپ ئىنتايىن پىششىق ئۈگىنىڭ.
سىز windows دا مەلۇم بىر پروگراممىنى يازماقچى، ئەلۋەتتە ئۇنى Java بىلەنمۇ يازالايسىز، ئەگەر ئۇ كۆرۈنمە يۈزگە بولغان تەلەپ يۇقىرى پروگرامما بولسا ھەقىقەتەن بەك قىينىلىپ كىتىسىز، باسىدىغان يولىڭىز كۆپ بولىدۇ، لىكىن بۇنى Microsoft نىڭ بىرەر تىللىرى، مەسىلەن Visual basic.net, C#, Visual C++ دىگەنلەردە قىلسىڭىز مۇرەككەپ كۆرۈنمە يۈزنى ئاسانلا بىر تەرەپ قىلالايسىز، ماڭىدىغان يولىڭىز كۆپ قىسقىرايدۇ،
يەنە مەسىلەن سىز Android سۇپىسىدا بىر پروگرامما يازماقچى، لىكىن سىز چوقۇمC# دا يىزىپ چىقىمەن دىسىڭىز ھەقىقەتەن باسىدىغان يولىڭىز سەل كۆپ بولىشى مۇمكىن، ئۇنداق بولمىغان تەقدىردىمۇ يولىڭىز ھەرگىزمۇ Javaدا باشقان يولدەك قىسقا بولمايدۇ، لىكىن بۇنى Java دا يازسىڭىز يولىڭىز كۆپ قىسقا بولىدۇ،
ھەممە پروگرامما تىللىرىنىڭ ئۆزىگە خاس بولغان ئالاھىدىلىكلىرى ۋە ئارتۇقچىلىقى بولىدۇ، ھەم ئۆزىگە خاس تۇتقان بىرەر يولى بولىدۇ، گەرچە بىر تىلدىكى ئەسەرنى يەنە بىر تىلدا يىزىشقا بولسىمۇ يۇقارقى سەۋەپلەر تۈپەيلى ئاشۇ ئەسەرنى يىزىپ چىقىشقا ئەڭ ماس كىلىدىغان تىل بۇ مۇھىم ھالقا، مەسىلەن Windows دا قاتتىق دېتال بىلەن بەك قويۇق ئالاقىسى بار، يىقىن پروگراممىنى ھەرگىز Java بىلەن يازمايدۇ، ھەم يەنە يۆتكىلىشچانلىقى ئەڭ يۇقىرى بولغان پروگراممىنى مەنچە ھىچكىم C, C++ دا يازمايدۇ،
بىز كىيىنكى قىتىملىق تېمىلىرىمىزدا مىكرو تىپلىق بىر تەرەپ قىلغۇچلارنىڭ بىر تۈرى بولغان Arduino ھەققىدە ئىنىق چۈشەنچىگە ئىگە بولىمىز ۋە بۇنىڭدىن كىيىن Arduino ھەم C++ ھەققىدە داۋاملىق چۈشەنچىمىزنى چوڭقۇرلاشتۇرىمىز، بۇنىڭدىن كىيىنكى تېمىلىرىم مۇشۇ Arduino بىلەن بولۇپ كىتىشى مۇمكىن.
|