Which programming language can compose a better question situated ..... Most importantly, all languages give products GUI backing to Desktop based .... Nevertheless, it is the obligation of the designers to tail some best practices while.
Mazen Is maeel Ghareb et al, International Journal o f Research in Engineering, IT and Social Sciences, ISSN 2250-0588, Impact Factor: 6.452, Vo lu me 06 Issue 08, August 2016, Page 1-9
The Use of Programming Language Java and C-Sharp in academic institutes of Kurdistan Region Government Mazen Ismaeel Ghareb1 and Awder Mohamed Ahmed2 1
(Département of Computer Science of College of Science and Technology, Qrga Campus, Iraq-SulimanyaUniversity of Hu man Development, Kurdistan) 2 (Department of Information Technology,Technical College of Informatics, Iraq-Sulimanya-Sulaimani Polytechnic University) Abstract: A Java is turning out to be exceptionally pervasive as a first programming Language in some significant colleges and organizations of Computer Science in Kurdistan Region Government. While different colleges are as yet utilizing C# and wanting to change to Java. It is by all accounts the suitable time to take a look at these two languages as far as their early on programming ideas and talk about the qualities and shortcomings tackled in each isolating one from the other. Remembering this, we have taken a look at both of these languages, added to some straightforward projects, and gave our starting impressions. We trust that this correlation will be exceptionally useful in selecting the first programming Language, as well as comprehending what components ought to stay in future programming language to come. This paper will focus on three factors in both languages the Graphical user interface, Security issue and practicality in real projects. This helps the undergraduate students and Lecturer and Universities to comprehend the distinction to pick Java and C# in their courses. Keywords: Java, C#, Software security, Graphical User interface, Principle of Programming, prototype applications.
I. INTRODUCTION Which programming language can compose a better question situated projects? This inquiry is frequently asked yet it is difficult to achieve an accord on the answer. Fro m the viable viewpoint, it is dependable to answer this inquiry by experimentally looking at genuine article situated projects written in Java and C# language. The discoveries in view of observational proof ought to be important in help ing experts pick reasonable language to create object situated systems. Moreover, this helps the students to pick an appropriate programming language for their task in the study period and after graduation and will give some guidance for instructive organization for build ing up their educational programs (Wu et al. 2015) . Normally, Java preceded C#, and C# was not made in a vacuum. It is very regular that C# gained fro m both the qualities and shortcomings of Java, generally, as Java gained fro m Ob je ctive-C, which gained fro m C. A long these lines; C# ought to be not the same as Java. On the off chance that Java was impeccable, and then there would have been no motivation to make C#. On the off chance, that C# is flawless, and then there is no motivation to make any new programming language. The emp loyment would then be finished. In any case, what has to come is hazy, and both C# and Java are a great item arranged programming languages in the present, so they ask to be thought about. Both C# and Java are Object-Oriented Programming and basic/procedural worldview can be seen as two orthogonal methods for sorting out heterogeneous informat ion sorts (information and capacities) sharing normal behavior. The relative advantages and weaknesses of the two ide al models can be comprehended by considering the effect of including new usefulness and new informat ion sort. Procedural worldview fuses new capacities incrementally while it requires real reco mpilation to oblige new information sorts. Conversely, the item situated worldwide absorbs new information sorts easily, yet requires exceptional Vis itor plan example to manage technique upgrades. Another noteworthy point of the interest of the article -arranged worldview is its utilization of the interface to decouple customers and servers (Andrew & Jens 2002). It is critical to note that not all that matters can be secured here. The topic is essentially too expensive. The objective is to give enough data to help directors and programming designers settle on a superior educated decision about which language to use in specific circu mstances. Possibly some little language eccentricity in C# may make somebody pick Java. Possibly some imperfection in Java will affect somebody to pick C#. In any case, this archive will endea vor to plunge sufficiently profound into points of interest to uncover some concealed fortunes that guide in our objective (Apel et al. 2013). While in this paper not, covering everything about C# and Java, It will endeavor to supply some inside and out investigation on the vast majority of the points that are secured. I don't trust that it is by and large www.indusedu.org
Page 1
Mazen Is maeel Ghareb et al, International Journal o f Research in Engineering, IT and Social Sciences, ISSN 2250-0588, Impact Factor: 6.452, Vo lu me 06 Issue 08, August 2016, Page 1-9 advantageous just to say that some usefulness exists in a language and subsequently attempt to suggest that the language is capable. For instance, it could essentially say, "C# is a decent Language since it is article arranged." Naturally, that would expect that an item situated language is consequently great, which, fro m my experience, not everybody concurs with. Thus, I feel for this situation that I need to show why composing object-arranged code is great to begin with, which ought to reinforce the above affirmation. This can get somewhat dreary, yet I believe that it is critical. Additionally, it fo r the most part doesn’t prefer to advance anything that It has not utilized. In the event that It says beneath that the "language interoperability utilizing Visual Studio .NET is exceptional in light of the fact that it is simple," then It has keep running at any rate some fundamental tests to truly check whe ther it is actually "simple." More than likely, while not everybody will concur with my sentiments, I don't simp ly "wave my hand" by simp ly restating what others have said; rather It attempts to put what others have said under a magnifying glass (Nan z & Furia 2015) . Thousand distinct programming languages have been made in the most recent couple of years. A few programming languages appreciate wide fame and others present new elements. Every language has its preferences and downsides. The present work gives a correlation of different properties, ideal models, and components utilized by two or three famous programming languages. With these assortments of languages furthermore, their far reaching use, programming architect and software engineers ought to know about the advantages and disadvantages every language could convey to their product arrangement and be cautious when they make reasonable choices. These languages are looked at under the qualities of reusability, unwavering quality, convenience, accessibility of co mpilers and apparatuses, lucidness, proficiency, nature and expressiveness. Other criteria like the programming exertion, run time proficiency, memory utilizat ion, and database network is unveiled by actualizing and running the same arrangement of projects utilizing every one of the languages under study. This paper will focus on identifying differences between Java and C regarding the security issue , graphical user interface and applicability in the real project. This study will study these fac tors in teaching Java and C-Sharp in some of colleges and institutes that study programming language in the KRG.
II. RELATED WORK Java Language Research Java is a transcendental static wrote a programming language (however, it additionally bolsters dynamic writ ing for some OOPs ideas like poly morphism) created by James Gosling, Mike Sheridan, and Patrick Naughton in the year June 1991 at Sun Microsystems (Gosling et al. 2013) . A number of developable were affected fro m its partners in C and C++ programming Languages (Lindholm et al. 2014) . In spite of the fact that it was intensely affected by C and C++, it was distinctive in its own particular manners. It d isposed of pointers as its originators imagined that engineers are utilizing pointers the way it was not intended to be. Likewise, it dropped the migraine of overseeing memo ry as it got programmed memory ad ministration with the presentation of Garbage Collection (Gosling et al. 2013). Another component that made Java to emerge of its associates was that it favored WORA logic (i.e. Co mpose Once, Run Anywhere) with the presentation of Java Virtual Machine (Lindholm et al. 2014) (Shildt 2007). Accordingly, each of the a framework needs is a JVM to run a Java code. When it was acquainted with general society, it acco mpanied a co lossal API that included Threading, Networking, GU) AP)'s and so forth (Shildt 2007), wh ich was so prominent amongst the designer group which brought about Java being moved to the spot in sheer number of engineers (Lindholm et al. 2014 ). There are numerous versions of Java for examp le: Java Standard Edition: This release of Java incorporates just the core programming language which incorporates the JVM and the standard library. Java Enterprise Edition: This release of Java incorporates Java SE fu rthermore d ifferent elements important for web imp rovement, database connectivity and so on. Java Micro Edit ion: Th is release of Java is for cell phones. This rendition of Java is enhanced to keep running on mobile devices than Java SE. Java is a fabulous OOPs programming language. It offers an embodiment through access modifiers, for example, private, public, protected and so on, which unfathomably enhances the unwavering quality and security parts of the code. Java likewise bolsters Procedural Programming. In any case, Java doesn't give us a chance to have global variables or strategies outside the class, which could be ascribed to one of its outline objective (i.e. it ought to be "basic, object-situated and familiar"). Java doesn't bolster various legacies of classes; however it underpins numerous legacies through Interfaces. Along these lines, Java is even more a n OOPs language than whatever else (Umatani et al. 2015). Since Java keeps running on JVM it can likewise be called as a Managed Langu age as the JVM deals with every one of the assets that is required by the program (Kawachiya et al. 2007). All the distribution and reallocation of memory is taken care by the JVM through the Garbage Collector (Garrido 2004). Java is a decent www.indusedu.org
Page 2
Mazen Is maeel Ghareb et al, International Journal o f Research in Engineering, IT and Social Sciences, ISSN 2250-0588, Impact Factor: 6.452, Vo lu me 06 Issue 08, August 2016, Page 1-9 OOPs programming language, as it contains a large portion of the OOPs ideas, for examp le, Inheritance, polymorphis m, encapsulation and it had likewise got freed of certain convoluted ideas, for examp le, Mu ltiple Inheritance because of imitated issues, for examp le, the Deadly Diamond Death (Nagel et al. 2012). What's more, consequently the result of such choices prompted a straightforward and simp le to utilize OOPs language. Because every one of these qualities, Java's utilization is high in creating applications, predominantly online applications for ventures. Java is likewise prevalent utilized as a part of Education field to show programming in schools and colleges as Java is an amazing OOP's language. The most essential shortcoming is that will be that since it is not a locally executed language, its execution is somewhat less when contrasted and the other locally executed language, for examp le, C, C++. C# lang uage C# programming language was acquainted with the world by Microsoft in the meantime, as the .Net platform, and the diverse forms of C# were likewise presented in parallel with the Microsoft. Net new forms. C# is an advanced sort safe multi-worldview programming language that turned out to be extremely well known and broadly spread in the improvement field in light of its effortlessness, adaptability and productivity. C# was impacted by three of the most generally utilized programming Languages: C, C++ and Java. C and C++ are the immed iate ancestors of the C# programming language while there is a cozy relations hip amongst it and Java programming language (J. Albahari & Albahari 2015). C# utilizes and promote enhances the article model characterized by the C++ programming language. At the point when discussing Java, which was inspired by the need of a stage free language to take care of the versatility issue developed by the presentation on the Internet, received its exquisite savvy arrangement of utilizing a convenient middle of the road language (Troelsen 2010). Nu merous programming languages was affected by the C# programming language. Together, Andres Hejlsberg and Scott Wiltamuth have composed the C# language Specification. Anders Hejlsberg, the first creator of Turbo Pascal and the central engineer of Delphi, jo ined Microsoft in 1996 and acquainted the C# pro gramming language with the wo rld couple of years after the fact as an underlying discharge in 2000. Notwithstanding his part as the main planner of the new language, he was additionally required in the advancement of the .Net stage (Totoo & Loidl 2014). C# was intended to principally support basic programming (B. A lbahari et al. 2002), this programming language gives the designer the capacity to code in a decisive programming style by the utilizat ion of the LINQ. Furthermo re, the Reflection namespace gave by the C# programming language since the adaptation 1.1 of its details and improved after some time with each new form of the language, emphatically bolster the intelligent programming wo rld wide in C#. Building segments utilizing C# programming language are a simp le assignment that aides enormously in dealing with a project's mult ifaceted nature. The properties, occasions and characteristics develop gave by the C# programming language makes it likewise a Co mponent Oriented programming language (Nagel et al. 2011). The most essential segment arranged component bolstered by C# is its capacity to work in a protected blended Language environment (Troelsen 2010). C# latest version 5.0 was discharged on August 15, 2012 with .NET Framework 4.5 and Visual Studio 2012. There are two principle h ighlights in C# 5.0 - Async Programming and Caller Information (Lew et al. 2014). C# 5.0 Async highlight presents two watchwords async and anticipate which permits you to compose offbeat code all the more effort lessly and naturally like as synchronous code. Guest Information can help you in following, investigating and making analyze instruments. It will help you to stay away from copy codes which are for the most part conjured in numerous techniques for the same reason, for examp le, logging and following. C# is a proficient programming language that enhances software engineer's efficiency by improv ing the improvement procedure and lessening the odds of having the most regular programming blunders. This language consolidates and adjusts the considerable about the two universes of Java and C/C++ p rogramming Languages in a manner that permits the designer to compose programs in a basic exquisite manner as Java with the utilizat ion of the expressiveness and adaptability of the C/C++ languages. The way that it has comparative punctuation and linguistic use to the C++ and Java programming languages make it less demanding and speedier to be learned and received. Since C# programming language was presented after the presentation of numerous vital Web gauges, for examp le, the HTML, XM L and SOAP, it was outlined with the need to bolster Web norms and advancements in mind. An adaptable forming support gave by the C# programming language facilitates the improvement and development procedures of complex applicat ions, increases their strength and abatements their costs (Nagel et al. 2011) . The constrained express interface executions and the stowing away of the acquired individuals are elements given by C# to backing such adaptable forming. Furthermo re, C# permits were applied wrote the metadata to objects of any sort, for example, classes and interfaces. This element gives an extraordinary help during the time spent observing and guaranteeing right mapping of the configuration into the usage (Jackson 2016). In addition, the part arranged nature of the C# facilitates essentially the procedure of overseeing and creating complex frameworks as a gathering of interfacing segments. Since C# is a sort safe programming language, it lessens normal programming botches and www.indusedu.org
Page 3
Mazen Is maeel Ghareb et al, International Journal o f Research in Engineering, IT and Social Sciences, ISSN 2250-0588, Impact Factor: 6.452, Vo lu me 06 Issue 08, August 2016, Page 1-9 upholds designed to embrace the great programming conduct. Moreover, C# has a bound together sort framework; imply ing that each sort is gotten from one single base sort. In this manner the essential functionalities gave by this write are the base functionalities shared by any two sorts in C#. The city worker gave by C# naturally deals with the memo ry assets at runtime. Sadly, C# is still inad missible to be utilized when creating time -basic applications or when the execution is required to be truly high. Despite the fact that such applications are uncommon in the improvement field contrasted with different applications, this is a recognizable restriction of the C# programming Language. Among the colossal rich components and functionalities gave by C# it is as yet experiencing lack in the key offices required to grow elite and time -basic applications, for examp le, indicating in line capacit ies and destructors in a manner that they are ensured to keep running at specific focuses. The junk jockey ad ditionally makes C# an unseemly choice for such applications. It influences the execution of the application at runtime in a conflicting way at unusual purposes of time making it a hard undertaking to create applications that can deliver reliable execution continuously (Jackson 2016). Fundamentally the same as Java projects, C# source code is aggregated first into a middle of the road language and after that converted into machine code. At the point when projects composed by C# programming language are ordered, the aftereffect of the arrangement procedure is a unique paired configuration of the projects in a t ransitional language, which takes after the Co mmon Language Infrastructure (CLI) details, called the Microsoft Intermediate Language (MSIL) which is like the Java autonomous bytecode. C# is a static specifically programming language. A sort must be indicated expressly to each variable and steady utilized as a part of the code. St rategies marks additionally should expressly determine the sort to be return ed, and a sort for each parameter (J. Albahari & Albahari 2015).
III. SIMILARITY AND DIFFERENT BETWEEN C# AND JAVA IN THE SELECTED AREA Graphical User Interface The command line interface is the local approach to doing things. C# language has a summon line interface include as well. It incorporates fundamental functionalit ies and additionally propelled attributes. C# interface, co mmand line gives access to three (3) essential informat ion streams: Standard input, Standard output, and Standard errors. Dissimilar to another programming language, the C# command line interface could be utilized fo r co mputerized testing, which would help in decreasing assets required for mechanization imp lementation. Java manages numerous command line interfaces. The most well-known Java CLI is the regular CLI. Characteristic CLI offers a few components that are remarkable to Java. One of these components is being an unadulterated Java usage and making charge line parsing simple utilizing annotations (B. A lbahari et al. 2002) (Nagel et al. 2011) . Some of the graphical user interface instruments thought about for Java and CSharp are: Netbeans, Eclipse and Microsoft Visual Studio. Another contrast amongst Java and Qt IDE is that Eclipse is composed in Java and Qt in C++. While Eclipse bolsters GUI programming language imp rovement on account of the likelihood to bolster modules to develop useful, Qt underpins just C and C++ languages for GUI p lan. Additionally, there are a large number of free modules accessible in the business sector for shroud while most Qt modules are definitely not. Most importantly, all languages give products GUI backing to Desktop based application. With C#, it is nearly simple to create a GUI web application than in Java. There has been less backing for GUI web application improvement in C# contrasted with C# windows application yet there is a rich domain In the IDE visual studio which permits to move and customize controls. Then again, creating Web applications in Java utilizing Eclipse it’s not that simp le. Not at all like Qt and visual studio, does shroud not bolster WYSIW YG co mponent for web advancement. The client must be acquainted with HTM L or use different devices to build up their client interfaces and afterward import it to Eclipse. So the client needs to utilize libraries or outside apparatuses to do GUI stuff effectively in Java. W YSIW YG can be upheld in both shroud and Netbeans utilizing modules. In C#, visual studio has an inherent backing for the web GUI plan and permits the designers to alter the control’s properties and see the progressions reflected at alter time. Be that as it may, on the off chance that you are utilizing outside out -of-thecontainer libraries, designers have constrained access to control properties. C# has a great deal more co ntrol and Functionality as a contrast with Java, Qt, and Neatbeans. Which permits making rich and different GUI application? For instance, to update a progress bar in CSharp inside a panel, Ajax Script, wh ich is outer to Eclipse, is utilized to demonstrate the advancement of the bar. Adding to that as it may, in Java JQuery was received to do likewise undertaking yet I need to utilize outside Library for that to actualize it. C# g ives more properties, occasions, usefulness of controls while Java has restricted properties for controls. Csharp Visual Studios tool compart ment structure is basic and simp le that an apprentice can likewise see effortlessly and make an alluring and clean GUI application, While Java has more perp lexing approach to execute GUI as client first need to hunt which library to utilize then need to introduce the library and after that learn it to actualize GUI. So the structure is difficult to comprehend and it requires more investment to learn it. Likewise, while making a dropdown list in C#, it gives the www.indusedu.org
Page 4
Mazen Is maeel Ghareb et al, International Journal o f Research in Engineering, IT and Social Sciences, ISSN 2250-0588, Impact Factor: 6.452, Vo lu me 06 Issue 08, August 2016, Page 1-9 alternative at once to make individuals fro m it or to join dropdown to the database to get the qualities fro m it, so users don't need to compose a manual code, while in Java client needs to compose the code physically wh ich speaks to an overhead. There are numerous choices to show result information in c# like you can demonstrate it in Grid view, Repeater, Tab le wh ich has their own usefulness which consequently control the information while in Java there are constrained controls with restricted usefulness to show the outcome data(Nagel et al. 2011) (Jackson 2016). Some figures below illustrate the GUI interfaces differences between Java and C# that has mentions before.
Figure 1 Java Graphical User interface in Net Beans
Figure 2 Drop Down List in C Visual Studio Adding more, Java and CSharp have distinctive Event handling techniques. C# bolster Event Handlers and Delegates while Java support just Event Listeners. Concerning the Graphica l user interface criteria, C# bolster GU advancement utilizing .NET's Windows Forms and WPF libraries while Java supports it utilizing Java's worked as a part of Swing and AWT libraries. Furthermore, not at all like C# backings the move and customize inclu de additionally with WPF system. Then again, Java supports GUI advancement, utilizing Java.awt.dnd library.Java, CSharp has diverse Event handlers support. C# bolster Event Handlers and Delegates while Java supports just Event Listeners. Concerning the Graphical client interface criteria, C# bolsters GU advancement utilizing. NET's Windows Forms and WPF lib raries while Java support it utilizing Java's worked as a part of Swing and AWT libraries. Furthermore, d issimilar to C# bolsters the move and customize h ighlight additionally with WPF structure. Then again, Java underpins GUI improvement utilizing java.awt.dnd library.finally we can conclude that C# is the most appropriate for outlining and creating GUIs. Visual Studio IDE g ives a UI originator a majo r ar rangement of preassembled parts. Along these lines, C# can utilize WPF innovation to make intense exceptionally adjustable UIs (Prot zenko 2015). Writing secure programmi ng: There is no denying that Java is utilized widely to develop Java enterprise applic ations reason being Security. Java b rings the absolute most intriguing co mponents or advantages that are difficu lt to discover in some www.indusedu.org
Page 5
Mazen Is maeel Ghareb et al, International Journal o f Research in Engineering, IT and Social Sciences, ISSN 2250-0588, Impact Factor: 6.452, Vo lu me 06 Issue 08, August 2016, Page 1-9 other programming languages or platforms. Security is an essential viewpoint and Java's security model is one of the key compositional elements that settle on it most trustful decision concerning creating undertaking level applications. Security gets to be basic when programming is downloaded crosswise over the system and executed locally, and Java effortlessly mitigates the security vulnerabilit ies connected with the enterprise or applications. Try not to trust this? Observe a couple of, continuations (efforts to establish safety/includes) that display how secure Java stage is. Java’s security model is expected to help and s hield clients fro m antagonistic projects downloaded fro m some untrusted asset inside a system through "sandbox". It permits all the Java projects to keep running inside the sandbox just and keeps numerous exercises fro m entrusted assets, including perusing or keeping in touch with the neighborhood plate, making any new procedure or notwithstanding stacking any new element library wh ile calling a local method. All the primit ives are characterized with a predefined size and every one of the operations are characterized in a particular request of execution (Lew et al. 2014) . As shown in Figure 3. In this way, the code executed in various Java Virtual Machines will not have an alternate request of execution. The Java object embodiment gives back to the idea of "programming by contract". This permits the designers to re-utilize the code that has as of now been tried while creat ing Java venture applications. It permits engineers to pronounce classes or strategies as FINAL. We, as a whole realize that any class or strategy proclaimed as last can't be abrogated, which helps designers to shield, code fro m security assaults like making a subclass and supplanting it with the first class and supersede methods. The Garbage gathering system helps more to the efforts to est ablish safety of Java. It gives a straightforward stockpiling assignment and recuperating unutilized memory instead of reallocating memory through manual activ ity. It will help designers to guarantee the respectability of the system amid its execution and keeps away fro m any JVM crash because of off base liberating of memory. Apart fro m all these, organized blunder taking care of contributes a great deal to the security model of Java by improving the heartiness of the projects. The above contentions unquestionably demonstrate that the ventures created in Java are more secure when contrasted with the other programming language. Nevertheless, it is the obligation of the designers to tail some best practices while creating venture level Java applications (Lew et al. 2014). While in C ,The basic language runtime and the .NET Framework give nu merous valuable classes and administrations that empower engineers to effort lessly compose secure code and empower framework executives to modify the consents allowed to code so it can get to insured assets. Also, the runtime and the .NET Framework give helpful classes and admin istrations that encourage the utilizat ion of cryptography and part based security.
Figure 3 Security measure for java [25] The most vital change to security in the .NET Framework 4.5 is in strong naming. The .NET Framewo rk gives a two-level security model for oversening applications. Windows 8.x Store applicat ions keep running in a Windows security holder that limits access to assets. Inside that compart ment, oversaw applications run completely trusted. Fro m a code access security (CAS) point of v iew, there is nothing a designer can do to lift benefits. A strong name mark is a characteristic co mponent of the .NET Framework fo r recognizing gatherings. It is an open key advanced mark that is regularly used to confirm the honesty of the informat ion being passed from an originator www.indusedu.org
Page 6
Mazen Is maeel Ghareb et al, International Journal o f Research in Engineering, IT and Social Sciences, ISSN 2250-0588, Impact Factor: 6.452, Vo lu me 06 Issue 08, August 2016, Page 1-9 (endorser) to a beneficiary (verifier). This mark is utilized as a one of a kind personality for a ge t together and guarantees that references to the get together was not questioned. The get together is marked as a component of the assemble procedure and afterward confirmed when it is stacked. Strong name, marks keeps malevolent gatherings fro m messing around with a get together and after that re-marking the get together with the first endorser's vital. Nevertheless, strong name keys don't contain any dependable data about the distributor, nor do they contain a declaration progressive system. A solid name , signature does not ensure the dependability of the individual who marked the get together or demonstrate whether that individual was a true blue proprietor of the key; it shows just that the proprietor of the key marked the get together. In this way, we don't prescribe utilizing a strong name, signature as a security validate for trusting outsider code. Microsoft Authenticode is the prescribed approach to verify code (Lew et al. 2014). Marketability of using Java or C# One of the first inspirations for ma king Java was to make a language where arranged code could keep running on any working framework. While it is conceivable in a few circu mstances to, say, compose compact C++ code, this C++ source code still should be incorporated to keep running on some ne w focused on working framework and CPU. So Java confronted an extensive test in getting this going. Assembled Java does not keep running on "any" working framework, but rather it runs on large portions of them. Windows, UNIX, Linu x, whatever. There are a few issues with Java running on memory-obliged gadgets as the arrangement of bolsters lib raries must be lessened, yet it benefits an occupation of running on numerous OSes. Java source code is accumulated into halfway byte-codes, which are then deciphered at run time by a stage particular Java Virtual Machine (JVM). Th is is decent, on the grounds that it permits engineers to utilize any compiler they need at any stage to accumulate code, with the presumption this assembled byte-code will keep running on any upheld working framework. Actually, a JVM must be accessible for a stage before this code can be run, so Java is not really bolstered on each working framework. C# is additionally arranged to a middle of the road language, called MSIL. As the online documentation depicts, this MSIL is changed over to working framework and CPU-part icular code, by and large an in the nick of time co mpiler, at run-time. It appears that while MSIL is as of now just bolstered on a couple working frameworks, there ought to be no reason that it can't be upheld on non-Windows working frameworks later on. Right now, Java is the "victor" in this class as it is bolstered on more working frameworks than C#. One fortunate thing about both the methodologies that C# and Java have taken: th ey both permit coders and designers to delay basic leadership, which is quite often something worth being thankful for. You don't need to precisely recognize what’s working framework that your code will keep running on when you begin to manufacture it, so you have a tendency to compose more broad code. Not far off, when you discover that your code needs to keep running on some other wo rking framework, you're fine the length of your aggregated byte -code or MSIL is bolstered on that stage. In the event that you initially accepted that your code was to keep running on one and only OS and you exploited some stage particular usefulness, then later confirm that your code must keep running on some different OS, you're stuck in an unfortunate situation. With both C# and Java, a hefty portion of these issues will be maintained a strategic distance from. Actually, on the off chance that you are going to fabricate applications, you have to realize what working frameworks your code will keep running on with the goal that you can address your client's issues. Be that as it may, as I would see it, you don't as a matter of course need to know each grimy little insight about how the JVM functions, for instance, only that it does. Now and again, obliv iousness can be rapture (Prot zenko 2015). In Kurdistan Region Govern ments, markets and company they used C sharp in their protect because of these reasons, You have genuine, generic, and you can perform reflection on them. It’s profoundly coordinated with Windows, if that is the thing that you want. It takes into consideration both nonspecific co -difference and invention unequivocally. Another imperative reason is the Operating System a large portion of clients in the Kurdistan Region market ut ilizing windows working system. W indows is the dominating Operating System on customer PCs. The best GUI systems for Windows applications are Windows forms and WPF together with the .NET Framework. The best programming language to work with the .NET Framewo rk and its APIs is C#. Java is not an option for this. C# is like C++ yet has programmed memo ry admin istration and you don't need to work with pointers, which make you more gainful. C++ can in any case be the best choice for a few cases, however, not for structure escalated database applications that are regularly in business. If you are ut ilized to wo rk in the Windows environment and with C#, you will require minimal speculation to learn IIS for server programming and Windows Server for essential administration. If you are creating programs that will be conveyed in organizational systems, it's imaginable that they utilize a W indows focused environment utilizing a Windows Server with Active Directory. In such a situation it's easy to coordinate and send an arrangement made in C# and the .NET Fra mework. C# is better in creating system applications for Windows system. However, Java for Linu x based web servers. Yes, C# is a superior language with more cutting edge highlights than Java, however, that is not the most imperat ive thing for picking C#. www.indusedu.org
Page 7
Mazen Is maeel Ghareb et al, International Journal o f Research in Engineering, IT and Social Sciences, ISSN 2250-0588, Impact Factor: 6.452, Vo lu me 06 Issue 08, August 2016, Page 1-9 The environment for your product is most critical for picking C#. In the event that you work in a do main with Windows customers, Windows servers, Active Directory, IIS and possibly SQL Server then C# is the far best language with the .NET Framework. If you work in a UNIX situation with e.g. web admin istrations, Java would be the best decision.
IV. RESULTS AND ANALYSIS This research used questionnaires for undergraduate students in both departments of Computer Science and Information Technology students in university of human development and polytechnic university and some of students from 2-year co mputer science institutes. The questionnaire was 15 questions regarding using Java and C# in their study principle of programming module and object oriented module . 103 answers fro m different students’ stages has been collected. Some important question is selected to show the students’ feedback regarding using Java or C# in future carrier. One of the question is selected is How many programming language tools do you study? The results Shows that 76% studied both languages, 20% the studied Java and 4% studied C#, as it appears in Figure 4 below. It is recommended for ministry of higher education to focus on curriculu m for programming to decide to unified one language for programming, depending the outcome of the course and related to the market. The second question was which language tool you prefer the 54% answer C and 46% answer Java as it shows in figure 5.
Figure 4 Language Study tool Figure 5 Preferable Language tool The Third question was why you selected this tool for Java language there answered was because Java more secures in programming and working on different platforms. For C# their answer was having easy and interactive Graphical User Interface and Easy to learn and apply. The Fourth and Fifth questions were regarding how many project the student's complete using C# and Java language. The results shows for C# 70% of students have project with this language and 42% at least have 2 projects as it appears in Figure 6. While in Java language %59 have done projects with Java language and at least 36% had done 2 projects as it shows in figure 7.
Figure 6 Students Project wi th C# Figure 7 Students Project wi th Java The results show that the majority of students prefer C# than Java because the pervious response that we have discussed previous section. However, so me of these students study both languages, but still p refer C# over Java in future projects. While some students still prefer Java rather than C# for b igger and enterprise projects.
V. CONCLUSION Conclusion This study has been shown the outcomes of study programming language, tools, Java and C# for undergraduate students. The study gives some reco mmendation for Higher Education’s for unifying the principle of programming and programming subject in general and lined to the real world projects in the Kurdistan region market. Adding mo re the research shows most of the Kurdistan Region institutes and private sectors is operating www.indusedu.org
Page 8
Mazen Is maeel Ghareb et al, International Journal o f Research in Engineering, IT and Social Sciences, ISSN 2250-0588, Impact Factor: 6.452, Vo lu me 06 Issue 08, August 2016, Page 1-9 System Windows users, therefore C# is the best choice for them. While the big Enterprise project, it’s preferable to use the Java language to implement it. In future we have tried to start two different projects with two teams and try to apply the weakness and strength of both languages. So the main point of our research is to help the students to have a clear idea why and how can apply Java or CSharp in different areas in your future work. The research can give some advice to institute to design a curriculu m depends on customer in society needs. Finally, it helps the developer to choose which course the need accomplish the market needs. Future Work In future work will try to have two teams working in Java and C sharp. Adding to that will then apply real case study on both languages, then try to have comparisons in the development and functionality and delivery of the end product. Moreover build unique course book for educational institutes.
VI. REFERENCES
[1] Albahari, Ben; Drayton, Peter & Merrill, Brad. 2002. C\# essentials. « O’Reilly Media, Inc.» [2] Albahari, Joseph & Albahari, Ben. 2015. C\# 6. 0 Pocket Reference: Instant Help for C\# 6. 0 Programmers. « O’Reilly Media, Inc.» [3] Andrew, W Appel & Jens, P. 2002. «Modern compiler implementation in Java». [4] Apel, Sven; Kastner, Christian & Lengauer, Christian. 2013. «Language-independent and automated software composition: The featurehouse experience». Software Engineering, IEEE Transactions on 39 (1): 63–79. [5] Garrido, Jose M. 2004. Object-Oriented Programming: From Problem Solving to Java. Firewall Media. [6] Gosling, J et al. 2013. «Java (TM) Language Specification, The (Java SE 7 Edition, )». [7] Jackson, Wallace. 2016. «Objects and Object-Oriented Programming: OOP Primer» in . JSON Quick Syntax Reference, 31 –50. Springer. [8] Kawachiya, Kiyokuni et al. 2007. «Cloneable JVM: a new approach to start isolated java applications faster» in . Proceedings of the 3rd international conference on Virtual execution environments, 1–11. [9] Lew, Roger; Boring, Ronald L & Ulrich, Thomas A. 2014. «A prototyping environment for research on human-machine interfaces in process control use of Microsoft WPF for microworld and distributed control system development» in . Resilient Control System s (ISRCS), 2014 7th International Symposium on, 1–6. [10] Lindholm, Tim et al. 2014. The Java virtual machine specification. Pearson Education. [11] Nagel, Christian et al. 2011. Professional C\# 2008. John Wiley \& Sons. [12] Nagel, Christian et al. 2012. Professional C\# 2012 and. Net 4.5. John Wiley \& Sons. [13] Nanz, Sebastian & Furia, Carlo A. 2015. «A comparative study of programming languages in Rosetta Code» in . Proceedings of the 37th International Conference on Software Engineering-Volume 1, 778–788. [14] Protzenko, Jonathan. 2015. «Pushing blocks all the way to C++» in . Blocks and Beyond Workshop (Blocks and Beyond), 2015 IEEE, 91–95. [15] Shildt, Herbert. 2007. Java: the complete reference. McGraw-Hill. [16] Totoo, Prabhat & Loidl, Hans-Wolfgang. 2014. «Parallel Haskell implementations of the N-body problem». Concurrency and Computation: Practice and Experience 26 (4): 987–1019. [17] Troelsen, Andrew. 2010. Pro C\# 2010 and the. NET 4 Platform. Apress. [18] Umatani, Seiji; Ugawa, Tomoharu & Yasugi, Masahiro. 2015. «Design and Implementation of a Java Bytecode Manipulation Library for Clojure». Journal of information processing 23 (5): 716–729. [19] Wu, Di et al. 2015. «A metrics-based comparative study on object-oriented programming languages».
www.indusedu.org
Page 9