මම මීට වසර 4+ කට පෙර පයිතන් වෙත මාරු වීමට පෙර වසර 10 ක් ජාවා වෙබ් යෙදුම් වැඩසටහන්ගත කළෙමි. මම පයිතන් භාවිතයෙන් වඩා tive ලදායී බවත් කෙටි කාලයක් තුළ තවත් බොහෝ දේ කළ හැකි බවත්, අවංකව කිවහොත්, මම පයිතන් වල වර්ධනය වන විට මම වඩාත් සතුටට පත්වන බවත් මට හැඟේ. මගේ පෞද්ගලික අත්දැකීම් මත පදනම්ව ජාවා පයිතන් වඩා හොඳ යැයි සිතීමට හේතු කිහිපයක් මෙන්න, ඔබේ මිශ්රණය බොහෝ විට විය හැකිය.
වෙබ් රාමු:
මම මුලින්ම ජාවා හි වෙබ් යෙදුම් ක්රමලේඛනය ආරම්භ කරන විට, ස්ට්රට්ස් එළියට ආ අතර එය විශිෂ්ට නොවේ, නමුත් එය ලබා ගත හැකි හොඳම දේ විය. මම නූල් යෙදුම් පොකුරක් සහ තවත් රාමු කිහිපයක් නිර්මාණය කළෙමි. නව රාමුවක් එළියට එන සෑම විටම (ටේප්ස්ට්රි, කඩුලු, ජීඩබ්ලිව්ටී, ඉරි, ග්රේල්ස්, ඇප්ෆියුස්, ප්ලේ, රිච් ෆේස්, ස්ප්රිං, ආදිය), මම එය අත්හදා බලා එය වඩා හොඳ දැයි බලන්නෙමි, බොහෝ විට එය ටිකක් හොඳ විය , සමහර විට වඩා හොඳ නැත. මට කියන්නට ඇත්තේ නාට්ය රාමුව නිවැරදි දිශාවෙහි පියවරක් බවයි.
බැටරි ඇතුළත් නොවේ:
ජාවා හි වඩාත්ම කරදරකාරී කොටස් වලින් එකක් නම්, ඔබ භාවිතා කරන පුස්තකාල බොහොමයක් ජාවා තුළම ඇතුළත් නොවීම, ඔබට අපාචේ කොමන් වැනි ස්ථාන වලින් තෙවන පාර්ශවීය ලිබ් ටොන් එකක් ඇතුළත් කිරීමට සිදුවිය. ඔබ වෙනත් ඕනෑම විශාල පුස්තකාලයක් සමඟ ශිශිර තරණය වැනි දෙයක් භාවිතා කරන්නේ නම්, ඔබ අවසන් වන්නේ ජාර් පරායත්ත නිරයේ ය, එහිදී ශිශිරත්වයට භාජනයේ එක් අනුවාදයක් අවශ්ය වන අතර තවත් දෙයකට තවත් අනුවාදයක් අවශ්ය වේ. ඔබ භාජන ලිපිගොනු වැරදි අනුපිළිවෙලට පටවන්නේ නම්, ඔබට වාසනාව නැත. ඔබේ පරායත්තතාවයන් කළමනාකරණය කිරීම සඳහා ඔබ මේවන් සහ අයිවි වැනි මෙවලම් මත යැපීමට අවශ්ය වන අතර, මෙය ඔබේ ව්යාපෘතියට වැඩි පරායත්තතාවයක් ගෙන එනු ඇති අතර එමඟින් ව්යාපෘති විශාල වේ. සරලම වෙබ් යෙදුම් සඳහා මා සතුව යුද ලිපිගොනු 100MB + යුද ලිපිගොනු කිහිපයක් තිබුණි.
බොහෝ විකල්ප:
කිසියම් හේතුවක් නිසා ජාවාහි එකම දේ කිරීමට විවිධ ක්රම ඇති බව පෙනේ. විකිපීඩියාවට අනුව ( http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java ) සහ විවිධ ORM 23 ක් ( http://en.wikipedia.org/wiki/List_of_object-relat#) ජාවා ) උදාහරණ කිහිපයක් නම් කිරීමට. ඔබ වෙනත් භාෂා දෙස බැලුවහොත් ඒවාට වඩා සාධාරණ සංඛ්යාවක් ඇත. සමහර අය සිතන්නේ බොහෝ විකල්ප තිබීම හොඳ දෙයක් බවයි, නමුත් එය සංවර්ධක ප්රජාව තුළ විශාල නාස්තියක් ඇති කිරීමට හේතු නොවේ, සෑම දෙනාම එකම රෝදය ප්රතිනිර්මාණය කරන අතර ඔබ සතුව ඇති භාෂාවට නව පුද්ගලයෙක් නම් තෝරා ගැනීමට බොහෝ විකල්ප.
යෙදුම් සේවාදායක:
ජාවා වෙබ් යෙදුම් ඇත්තෙන්ම බරයි, ඒවා ක්රියාත්මක කිරීමට විශාල සම්පත් ප්රමාණයක් අවශ්ය වේ. ඔවුන් විශේෂයෙන් මතකයේ බඩගිනි වේ. ඕනෑම මෘදුකාංගයක් මෙන් ඔවුන්ගේ සම්පත් අඩිපාර අඩු කිරීමට සුසර කළ හැකි නමුත් වෙනත් භාෂාවන් හා සසඳන විට ඒවා කොටුව සැකසීමෙන් පිටත භයානක ය. මගේ අතීතයේදී මම වෙබ්ලොජික්, වෙබ්ස්පියර්, ජොබොස්, ටොම්කාට් සහ ජැටි භාවිතා කර ඇත. මම පළමු තුන භාවිතා කළේ මට EJB භාවිතා කිරීමට බල කළ විට පමණි, නමුත් ඔබ EJB භාවිතා නොකලත් ඒවා විශාල යෙදුම් සේවාදායකයන් වූ අතර සමහර විට වින්යාස කිරීමට හා නිවැරදිව ක්රියාත්මක වීමට අපහසු විය. ටොම්කාට් සහ ජැටි සැකසීමට වඩා හොඳ සහ පහසු ය, නමුත් තවමත් සම්පත් හොග් ය.
යෙදුම් සත්කාරක:
ඔබ ඔබේම සේවාදායකයක් ධාවනය නොකරන්නේ නම්, සාධාරණ මිලකට ඔබේ ජාවා යෙදුම් සඳහා හවුල් සත්කාරක සොයා ගැනීම ඇත්තෙන්ම දුෂ්කර ය. ප්රධාන හේතුව වන්නේ ජාවා යෙදුම් වලට වෙනත් භාෂාවන් හා සසඳන විට වැඩි මතකයක් අවශ්ය වන නිසා හවුල් සත්කාරක සැපයුම්කරුවකුට ඔවුන්ගේ වටිනා RAM එක ජාවා වෙබ් අඩවියක් තුළ ගත කිරීම අර්ථවත් නොවේ, ඔවුන්ට එකම ස්ථානයක php අඩවි 5 ක් ධාවනය කළ හැකි විට. ඒ කියන්නේ ජාවා සත්කාරකත්වය සපයන අඩු සැපයුම්කරුවන් සිටින අතර එයින් අදහස් කරන්නේ ඔබේ වෙබ් අඩවිය ක්රියාත්මක කිරීම සඳහා ඉහළ පිරිවැයක් දැරීමයි.
සංවර්ධන කාලය:
මම ජාවා වල සංවර්ධනය වන විට, මට පයිතන් වලින් කළ හැකි දේ මන්දගාමී බව මට පෙනී ගියේය. මට වෙනසක් කිරීමට, සම්පාදනය කිරීමට, නැවත යෙදවීමට හා පසුව පරීක්ෂා කිරීමට අවශ්ය වනු ඇත, මෙය ක්රියාකාරී ක්රියාවලිය මන්දගාමී කරයි. මෙය වේගවත් කිරීමට ක්රම ඇති බව මම දනිමි, නමුත් හොඳම දේ වුවද මට පයිතන් වලින් කළ හැකි දේ මන්දගාමී බවක් දැනුනි.
පයිතන් වලදී එකම දේ කිරීමට බොයිලර් ප්ලේට් කේතයක්ද අඩුය, එබැවින් මම කේතය සංවර්ධනය කිරීමටද අඩු කාලයක් ගත කරමි.
ජාවාට බොහෝ කොටස් වලින් සැලසුම් කර ඇති බවක් දැනේ, බොහෝ API සහ අතුරුමුහුණත් ඔබට කිරීමට අවශ්ය දේ සංකීර්ණ කිරීමට මගකි. සෑම කෙනෙකුම සහ ඔවුන්ගේ සහෝදරයා සිතන්නේ ඔවුන් ජාවා ගෘහ නිර්මාණ ශිල්පියෙකු බවයි. මෙහි ප්රති results ලය වනුයේ විශාල සංකීර්ණ පද්ධති භාවිතා කිරීමට හා සංවර්ධනය කිරීමට අපහසු වීමයි.
IDE:
මම ජාවා හි සංවර්ධනය කරන විට, IDE වෙත ඇලී සිටින බවක් මට දැනුනි, එය නොමැතිව මට අහිමි විය. IntelliJ යනු වෙළඳපොලේ ඇති හොඳම IDE ය. එය පයිතන් සඳහා මාරුවීම දුෂ්කර විය. එබැවින් IDE වෙනුවට මම සාමාන්ය පෙළ සංස්කාරකයක් වන පෙළපොත් භාවිතා කළෙමි. මුලදී එය දුෂ්කර වූ නමුත් එය හුදෙක් පෙළ සංස්කාරකයක් වූ බැවින් එය ඉතා වේගවත් හා ප්රතිචාරාත්මක යෙදුමකි. මට මගේ සම්පූර්ණ ව්යාපෘතිය තත්පර කිහිපයකින් විවෘත කළ හැකි අතර, මට IDE එකකින් ව්යාපෘතියක් විවෘත කිරීමට අවශ්ය වූ විට විනාඩියක් හෝ ඊට වැඩි කාලයක් ගත විය හැකිය. ඉන්ටෙලිජේ හි නිෂ්පාදකයින් පයිචර්ම් නමින් පයිතන් සංස්කාරකයක් සමඟ එළියට ආවා, එය මුලින්ම එළියට එන විට මම එය මිලදී ගත්තා, එය විශිෂ්ටයි. නමුත් මම තේරුම් ගත් දෙය නම් මට පයිතන් සඳහා IDE අවශ්ය නොවන බවයි, මම පෙළ සංස්කාරකය සමඟ හොඳින් සිටිමි. මම වරින් වර කළ යුතු ජාවා වෙබ් යෙදුම්වල වැඩ කිරීමට ආපසු යන විට, මම පෙළ සංස්කාරකය භාවිතා කිරීමට උත්සාහ කරමි, නමුත් මම තවම එය ප්රගුණ කර නැත. මට පෞද්ගලිකව ජාවා සඳහා IDE අවශ්ය වන්නේ මා යම් දෙයක් අවුල් කළහොත් නැවත සකස් කිරීමට සහ නැවත යෙදවීමට වැඩි කාලයක් ගත වන නිසාය.
ORM:
මම මුලින්ම හයිබර්නේට් ORM ලෙස භාවිතා කිරීමට පටන් ගත් විට, මම සිතුවේ එය විශිෂ්ටයි, එහි ගැටළු ඇති අතර එය පරිපූර්ණ නොවේ, නමුත් වඩා හොඳ නම් මම කලින් කරමින් සිටි දෙය. මම ජැංගෝගේ ORM සමඟ පයිතන් ව්යාපෘතියක් සඳහා අයදුම්පතක් කරන තෙක් මගේ සතුටට පත්වූ අතර, එය මගේ දෑස් විවර කළේය, ORM වැඩ කළ යුතු ආකාරය එයයි. එම ව්යාපෘතියෙන් පසු මම නැවත ශිශිරත්වයට ගිය අතර, මට කලකිරීමක් දැනුණු අතර, ජැන්ගෝගේ ORM වෙත ආපසු යාමට ආශාවෙන් සිටියෙමි. තවත් විශිෂ්ට පයිතන් ORM යනු ජැන්ගෝගේ ORM ට සමාන වන sqlalchemy, නමුත් ටිකක් වෙනස් ය. මට ROR හි ORM සමඟ සීමිත අත්දැකීම් ඇත, නමුත් මට මතක ඇති පරිදි, එය ද හොඳ ය.
සැකිලි:
ජාවා හි වෙබ් සැකිලි පද්ධති එතරම් හොඳ නැත, මම හිතන්නේ මම ඒවා සියල්ලම අත්හදා බැලුවෙමි (උළු, නිදහස් සලකුණු, ප්රවේගය ආදිය). ඔවුන්ගෙන් බොහෝ දෙනෙක් ඉදිරිපත් කරන්නේ මූලික ක්රියාකාරිත්වය පමණක් වන අතර එය සමඟ වැඩ කිරීමට වේදනාවක් වේ. පයිතන් පැත්තේ, මගේ ප්රියතමයන් දෙක වන්නේ ජැන්ගෝ සැකිලි සහ ජින්ජා 2 ය, ඒවා මට අවශ්ය සෑම දෙයක්ම අච්චු සහිත එන්ජිමක ඇති අතර ඒවා භාවිතා කිරීමට පහසුය.